def play_video(self): """ Plays the selected video in the player. """ if self.video_player.is_ready(): try: self.video_player.media_object.finished.disconnect(self.loop) except Exception as e: logger.warning(("Signal disconnect Fail -> %s" % e), level=0) try: self.video_player.media_object.stateChanged.disconnect(self.video_player_state_changed) except Exception as e: logger.warning(("Signal disconnect Fail -> %s" % e), level=0) self.set_video_player_state(False) # Searches the video file item = self.lw_video.currentItem() candidates = io.get_files(self.current_folder, extensions=self.allowed_extensions, filters=[item.text()]) # If exists, plays it in the player. if candidates: video_file = candidates[0] self.video_player.clear_urls() self.video_player.add_url(video_file) self.video_player.set_current_url(0, reset=True) self.set_video_player_state(self.video_player.is_ready()) if self.video_player.is_ready(): self.lb_playing_name.setText("Playing: %s" % os.path.basename(video_file)) self.video_player.media_object.finished.connect(self.loop) self.video_player.media_object.stateChanged.connect(self.video_player_state_changed) self.video_player.play()
def wait_cursor(): try: QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor)) yield except Exception as e: logger.warning(("Wait Cursor Setup Error -> %s" % str(e)), level=0) raise e finally: QtGui.QApplication.restoreOverrideCursor()
def new_function(*args, **kwargs): QtGui.QApplication.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor)) try: function(*args, **kwargs) except Exception as e: logger.warning(("Wait Cursor Setup Error -> %s" % str(e)), level=0) raise e finally: QtGui.QApplication.restoreOverrideCursor()
def get_video_info(video_file, json_format=True): # ffmpeg_options = ["-i", video_file] ffmpeg_options = ["-v", "quiet", "-print_format", "json", "-show_format", "-show_streams", video_file] video_info = ffmpeg.run(ffmpeg_options, exe_name="ffprobe.exe") if json_format: try: video_info = json.loads(video_info) except Exception as e: logger.warning(("Error Parsing Video Info -> %s" % e), level=0) return None return video_info