class MediaPlayer(metaclass=Observable): class Error(Enum): none = QMediaPlayer.NoError unsupported_format = QMediaPlayer.FormatError access_denied = QMediaPlayer.AccessDeniedError closed = signal() playing = signal(Track) stopped = signal(Track) error_occurred = signal(Track) def __init__(self): self._media_library = create_media_library() self._playlist = [] self._player = QMediaPlayer() self._player.stateChanged.connect(self._state_changed) self._player.mediaStatusChanged.connect(self._media_status_changed) def play(self, track): self._playlist.append(track) self._player.setMedia(self._media_library.fetch(track.filename)) self._player.play() def stop(self): self._player.stop() def _media_status_changed(self, state): if state == QMediaPlayer.BufferedMedia: self._error = QMediaPlayer.NoError self.playing.emit(self._playlist[0]) elif state == QMediaPlayer.InvalidMedia: # On windows 8, we only get an InvalidMedia status in case of error, # so we need to keep track of the error that occurred self._error = QMediaPlayer.FormatError @property def error(self): return MediaPlayer.Error(self._player.error() or self._error) def _state_changed(self, state): if state == QMediaPlayer.StoppedState and self.error is not MediaPlayer.Error.none: self.error_occurred.emit(self._playlist.pop(0), self.error) elif state == QMediaPlayer.StoppedState: self.stopped.emit(self._playlist.pop(0)) def dispose(self): self._player.stop() # force the deletion of the player on windows because windows # doesn't release the handle and prevents further instanciations sip.delete(self._player) self._player = None self._media_library.dispose() self.closed.emit()
class MediaPlayer(metaclass=Observable): class Error(Enum): none = QMediaPlayer.NoError unsupported_format = QMediaPlayer.FormatError access_denied = QMediaPlayer.AccessDeniedError closed = signal() playing = signal(Track) stopped = signal(Track) error_occurred = signal(Track) def __init__(self): self._media_library = create_media_library() self._playlist = [] self._player = QMediaPlayer() self._player.stateChanged.connect(self._state_changed) self._player.mediaStatusChanged.connect(self._media_status_changed) def play(self, track): self._playlist.append(track) self._player.setMedia(self._media_library.fetch(track.filename)) self._player.play() def stop(self): self._player.stop() def _media_status_changed(self, state): if state == QMediaPlayer.BufferedMedia: self._error = QMediaPlayer.NoError self.playing.emit(self._playlist[0]) elif state == QMediaPlayer.InvalidMedia: # On windows 8, we only get an InvalidMedia status in case of error, # so we need to keep track of the error that occurred self._error = QMediaPlayer.FormatError @property def error(self): return MediaPlayer.Error(self._player.error() or self._error) def _state_changed(self, state): if state == QMediaPlayer.StoppedState and self.error is not MediaPlayer.Error.none: self.error_occurred.emit(self._playlist.pop(0), self.error) elif state == QMediaPlayer.StoppedState: self.stopped.emit(self._playlist.pop(0)) def dispose(self): self._player.stop() # force the deletion of the player on windows because windows # doesn't release the handle and prevents further instanciations sip.delete(self._player) self._player = None self._media_library.dispose() self.closed.emit()
class VideoPlayer(QWidget): def __init__(self, parent): print("super().__init__(parent)") super().__init__(parent) self.mediaPlayer = QMediaPlayer(self, QMediaPlayer.VideoSurface) videoWidget = QVideoWidget() print("self.m_playButton = QPushButton()") self.playButton = QPushButton() self.playButton.setEnabled(True) self.playButton.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay)) self.playButton.clicked.connect(self.play) print("self.m_positionSlider =QSlider(Qt.Horizontal)") self.positionSlider = QSlider(Qt.Horizontal) self.positionSlider.setRange(0, 0) self.errorLabel = QLabel() self.errorLabel.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) print("controlLayout = QHBoxLayout()") controlLayout = QHBoxLayout() #controlLayout.setMargin(0) controlLayout.addWidget(self.playButton) controlLayout.addWidget(self.positionSlider) layout = QVBoxLayout() layout.addWidget(videoWidget) layout.addLayout(controlLayout) layout.addWidget(self.errorLabel) self.setLayout(layout) print("self.m_mediaPlayer.setVideoOutput(videoWidget)") self.mediaPlayer.setVideoOutput(videoWidget) self.mediaPlayer.stateChanged.connect(self.mediaStateChanged) self.mediaPlayer.positionChanged.connect(self.positionChanged) self.mediaPlayer.durationChanged.connect(self.durationChanged) self.mediaPlayer.error.connect(self.handleError) def setUrl(self, url): print("setUrl") self.errorLabel.setText("") if url.isLocalFile(): print("url.isLocalFile()") self.setWindowFilePath(url.toLocalFile()) else: print("else") self.setWindowFilePath('') #self.setWindowFilePath(url.isLocalFile() ? url.toLocalFile() : QString()); self.mediaPlayer.setMedia(QMediaContent(url)) print(url) def play(self): print("play") if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.mediaPlayer.pause() else: self.mediaPlayer.play() def mediaStateChanged(self, state): print("mediaStateChanged") if state == QMediaPlayer.PlayingState: print("state == QMediaPlayer.PlayingState") self.playButton.setIcon(self.style().standardIcon( QStyle.SP_MediaPause)) else: print("else") self.playButton.setIcon(self.style().standardIcon( QStyle.SP_MediaPlay)) def positionChanged(self, position): print("positionChanged") self.positionSlider.setValue(position) def durationChanged(self, duration): print("durationChanged") self.positionSlider.setRange(0, duration) def setPosition(self, position): print("setPosition") self.mediaPlayer.setPosition(position) def handleError(self): print("handleError") #self.m_playButton.setEnabled(False) errorString = self.mediaPlayer.errorString() message = "Error: " + errorString self.errorLabel.setText(message) print(self.mediaPlayer.error())
class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("PyQt5 Media Player") self.setGeometry(350, 100, 700, 500) self.setWindowIcon(QIcon('player.png')) #reqdata = req.get('http://192.168.0.47:2000/getcsvfile/strenght-weakness_bp') #data = reqdata.json() #print("data", data) #192.168.0.47 #http://192.168.0.47:2000/getvideo/strenght-weakness_bp #p =self.palette() #p.setColor(QPalette.Window, Qt.black) #self.setPalette(p) #data = {'name': 'Peter'} # resp = req.post("http://192.168.0.34:2000/upload/interview/postdata", data) # print(resp.text) # self.clientsocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # self.clientsocket.connect(('192.168.0.34',2000)) milli_sec = int(round(time.time() * 1000)) print(milli_sec) self.timer = QTimer() self.timer.timeout.connect(self.viewCam) fourcc = cv2.VideoWriter_fourcc(*'XVID') self.out = cv2.VideoWriter('C:/Users/brahm/OneDrive/Desktop/webcam/'+str(milli_sec)+'.mp4', fourcc, 30.0, (640, 480)) self.init_ui() self.show() def init_ui(self): #create media player object self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface) #create videowidget object videowidget = QVideoWidget() #create open button openBtn = QPushButton('Open Video') openBtn.clicked.connect(self.open_file) self.videobutton = QPushButton('start') self.videobutton.clicked.connect(self.record) #create button for playing self.playBtn = QPushButton() #self.playBtn.setEnabled(False) self.playBtn.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay)) self.playBtn.clicked.connect(self.play_video) #create slider self.slider = QSlider(Qt.Horizontal) self.slider.setRange(0,0) self.slider.sliderMoved.connect(self.set_position) #create label self.label = QLabel() self.label.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) #create hbox layout hboxLayout = QHBoxLayout() hboxLayout.setContentsMargins(0,0,0,0) #set widgets to the hbox layout #hboxLayout.addWidget(openBtn) hboxLayout.addWidget(self.videobutton) hboxLayout.addWidget(self.playBtn) hboxLayout.addWidget(self.slider) #create vbox layout vboxLayout = QVBoxLayout() vboxLayout.addWidget(videowidget) vboxLayout.addLayout(hboxLayout) vboxLayout.addWidget(self.label) self.setLayout(vboxLayout) self.mediaPlayer.setVideoOutput(videowidget) self.mediaPlayer.setMedia(QMediaContent(QUrl.fromLocalFile("C:/Users/brahm/OneDrive/Desktop/face exp node/రాష్ట్రపతి పాలన ఎప్పుడు, ఎందుకు విధిస్తారు_ ఆర్టికల్ 356 ఏం చెబుతోంది_ - BBC New.wmv"))) #media player signals self.mediaPlayer.stateChanged.connect(self.mediastate_changed) self.mediaPlayer.positionChanged.connect(self.position_changed) self.mediaPlayer.durationChanged.connect(self.duration_changed) self.mediaPlayer.error.connect(self.handle_errors) def open_file(self): #sender = self.sender() filename, _ = QFileDialog.getOpenFileName(self, "Open Video") if filename != '': self.mediaPlayer.setMedia(QMediaContent(QUrl.fromLocalFile(filename))) self.playBtn.setEnabled(True) def play_video(self): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.mediaPlayer.pause() else: self.mediaPlayer.play() print('mediaStatus: ' + str(self.mediaPlayer.mediaStatus())) def mediastate_changed(self, state): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.playBtn.setIcon( self.style().standardIcon(QStyle.SP_MediaPause) ) else: self.playBtn.setIcon( self.style().standardIcon(QStyle.SP_MediaPlay) ) def position_changed(self, position): self.slider.setValue(position) def duration_changed(self, duration): self.slider.setRange(0, duration) def set_position(self, position): print("position", position) self.mediaPlayer.setPosition(position) def handle_errors(self): print(self.mediaPlayer.error, 'error') print('error: ' + str(self.mediaPlayer.error())) print('mediaStatus: ' + str(self.mediaPlayer.mediaStatus())) self.playBtn.setEnabled(False) self.label.setText("Error: " + self.mediaPlayer.errorString()) def viewCam(self): # read image in BGR format ret, image = self.cap.read() #data = {'name': image} #resp = req.post("https://httpbin.org/post", data) #print(resp.text) #data = pickle.dumps(image) #print("data", data) #self.clientsocket.sendall(struct.pack("H", len(data))+data) self.out.write(image) #dtime = int(round(time.time() * 1000)) #data = QByteArray() #data.append("name=Peter&") #data.append("age=34") #videofilename = str(dtime)+'.mp4' #data.append('videoname', videofilename); #print("data", data) # convert image to RGB format def record(self): if not self.timer.isActive(): self.cap = cv2.VideoCapture(0) self.timer.start() self.videobutton.setText("Stop") else: self.timer.stop() self.cap.release() print("data", self.out) self.out.release() # update control_bt text self.videobutton.setText("Start")
class Window(QWidget): def __init__(self): super().__init__() p = self.palette() p.setColor(QPalette.Window, Qt.white) self.setPalette(p) title = "Python charts" top = 400 left = 400 width = 700 height = 500 self.setWindowTitle(title) self.setGeometry(top, left, width, height) self.init_ui() self.show() def init_ui(self): #create media player object self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface) #create videowidget object videowidget = QVideoWidget() #create open button openBtn = QPushButton('Open Video') openBtn.clicked.connect(self.open_file) #create button for playing self.playBtn = QPushButton() self.playBtn.setEnabled(False) self.playBtn.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay)) self.playBtn.clicked.connect(self.play_video) #create slider self.slider = QSlider(Qt.Horizontal) self.slider.setRange(0, 0) self.slider.sliderMoved.connect(self.set_position) #create label self.label = QLabel() self.label.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) #create hbox layout hboxLayout = QHBoxLayout() hboxLayout.setContentsMargins(0, 0, 0, 0) #set widgets to the hbox layout hboxLayout.addWidget(openBtn) hboxLayout.addWidget(self.playBtn) hboxLayout.addWidget(self.slider) #create vbox layout vboxLayout = QVBoxLayout() vboxLayout.addWidget(videowidget) vboxLayout.addLayout(hboxLayout) # vboxLayout.addWidget(self.plotWidget) vboxLayout.addWidget(self.label) self.setLayout(vboxLayout) self.mediaPlayer.setVideoOutput(videowidget) #media player signals self.mediaPlayer.stateChanged.connect(self.mediastate_changed) self.mediaPlayer.positionChanged.connect(self.position_changed) self.mediaPlayer.durationChanged.connect(self.duration_changed) self.mediaPlayer.error.connect(self.handle_errors) def open_file(self): filename, _ = QFileDialog.getOpenFileName(self, "Open Video") if filename != '': self.mediaPlayer.setMedia( QMediaContent(QUrl.fromLocalFile(filename))) self.playBtn.setEnabled(True) print(filename, "file") def play_video(self): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.mediaPlayer.pause() print(self.mediaPlayer.state(), "00000") else: self.mediaPlayer.play() print(self.mediaPlayer.state(), "2222") def mediastate_changed(self, state): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.playBtn.setIcon(self.style().standardIcon( QStyle.SP_MediaPause)) else: self.playBtn.setIcon(self.style().standardIcon( QStyle.SP_MediaPlay)) def position_changed(self, position): self.slider.setValue(position) def duration_changed(self, duration): self.slider.setRange(0, duration) def set_position(self, position): self.mediaPlayer.setPosition(position) def handle_errors(self): self.playBtn.setEnabled(False) self.label.setText("Error: " + self.mediaPlayer.errorString()) print(self.mediaPlayer.error, 'error') print('error: ' + str(self.mediaPlayer.error()))
class Window(QWidget): def __init__(self): super().__init__() p =self.palette() p.setColor(QPalette.Window, Qt.white) self.setPalette(p) title = "Python charts" top = 400 left = 400 width = 700 height = 500 self.setWindowTitle(title) self.setGeometry(top, left, width, height) self.init_ui() self.show() def init_ui(self): #create media player object self.mediaPlayer = QMediaPlayer(None, QMediaPlayer.VideoSurface) #create videowidget object videowidget = QVideoWidget() #create open button openBtn = QPushButton('Open Video') openBtn.clicked.connect(self.open_file) #create button for playing self.playBtn = QPushButton() self.playBtn.setEnabled(False) self.playBtn.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay)) self.playBtn.clicked.connect(self.play_video) #create slider self.slider = QSlider(Qt.Horizontal) self.slider.setRange(0,0) self.slider.sliderMoved.connect(self.set_position) #create label self.label = QLabel() self.label.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) fig = plt.figure(figsize=(1,1)) ax = fig.add_subplot(111) y_pos = np.arange(len(labelarr)) d = 1./(len(final)+2.) ax.bar(y_pos, final,color=colorarr) ax.bar(y_pos,newarr,color=colorarr) ax.set(yticklabels='',xticklabels='') ax.tick_params(right= False,top= False,left= False, bottom= False) self.plotWidget = FigureCanvas(fig) #create hbox layout hboxLayout = QHBoxLayout() hboxLayout.setContentsMargins(0,0,0,0) #set widgets to the hbox layout hboxLayout.addWidget(openBtn) hboxLayout.addWidget(self.playBtn) hboxLayout.addWidget(self.slider) #create vbox layout vboxLayout = QVBoxLayout() vboxLayout.addWidget(videowidget) vboxLayout.addLayout(hboxLayout) vboxLayout.addWidget(self.plotWidget) vboxLayout.addWidget(self.label) self.setLayout(vboxLayout) self.mediaPlayer.setVideoOutput(videowidget) #media player signals self.mediaPlayer.stateChanged.connect(self.mediastate_changed) self.mediaPlayer.positionChanged.connect(self.position_changed) self.mediaPlayer.durationChanged.connect(self.duration_changed) self.mediaPlayer.error.connect(self.handle_errors) def onclick(event): print('hiiiii') x = int(np.round(event.xdata)) print(x,"index") print(final[x],'newarray') fig.canvas.mpl_connect('button_press_event', onclick) def open_file(self): filename, _ = QFileDialog.getOpenFileName(self, "Open Video") if filename != '': self.mediaPlayer.setMedia(QMediaContent(QUrl.fromLocalFile(filename))) self.playBtn.setEnabled(True) print(filename,"file") def play_video(self): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.mediaPlayer.pause() print(self.mediaPlayer.state(),"00000") else: self.mediaPlayer.play() print(self.mediaPlayer.state(),"2222") def mediastate_changed(self, state): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.playBtn.setIcon( self.style().standardIcon(QStyle.SP_MediaPause) ) else: self.playBtn.setIcon( self.style().standardIcon(QStyle.SP_MediaPlay) ) def position_changed(self, position): self.slider.setValue(position) def duration_changed(self, duration): self.slider.setRange(0, duration) def set_position(self, position): self.mediaPlayer.setPosition(position) def handle_errors(self): self.playBtn.setEnabled(False) self.label.setText("Error: " + self.mediaPlayer.errorString()) print(self.mediaPlayer.error, 'error') print('error: ' + str(self.mediaPlayer.error()))
class MainUIClass(QMainWindow, mp3playerGUILayout3.Ui_MainWindow): def __init__(self, parent=None): super(MainUIClass, self).__init__(parent) self.setupUi(self) self.fixLayout() self.mediaPlayer = QMediaPlayer() self.mediaPlayer.error.connect(self.erroralert) self.playlist = QMediaPlaylist() self.mediaPlayer.setPlaylist(self.playlist) #Connecting button clicks and functions self.OpenButton.clicked.connect(self.addtoqueue) self.PlayButton.clicked.connect(self.play) self.StopButton.clicked.connect(self.mediaPlayer.stop) self.muteButton.clicked.connect(self.mute) self.ForwardButton.clicked.connect(self.playlist.next) self.BackwardButton.clicked.connect(self.playlist.previous) self.addToQueue.clicked.connect(self.addtoqueue) self.repeatButton.clicked.connect(self.repeat) self.shuffleButton.clicked.connect(self.shuffle) #Adding valuechange functionality self.Timeline.setRange(0, 100) self.Timeline.sliderReleased.connect(self.set_position) self.mediaPlayer.setVolume(50) self.volume_on = True self.Volumedial.setValue(50) self.Volumedial.valueChanged.connect(self.set_volume) self.displayfilename_thread = DisplayThread() self.displayfilename_thread.start() self.displayfilename_thread.labeltext.connect( self.displayfilename_func) self.mediaPlayer.stateChanged.connect(self.mediaStateChanged) self.mediaPlayer.durationChanged.connect(self.durationChanged) self.mediaPlayer.positionChanged.connect(self.positionChanged) self.playlist.currentMediaChanged.connect(self.filenameChange) self.tableWidget.cellDoubleClicked.connect(self.getcurrentrow) #self.mediaPlayer.mutedChanged.connect(self.muteChange) self.items = 0 self.repeated = True self.shuffled = True #p = self.palette() #p.setColor(self.backgroundRole(), Qt.lightGray) #self.setPalette(p) #self.dumpObjectInfo() @Slot() def addtoqueue(self): filename, _ = QFileDialog.getOpenFileName( self, "Select song") # QDir.homePath()) if filename != '': self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(filename))) self.addtoview(filename) def addtoview(self, filename): self.tableWidget.insertRow(self.items) table_filename = QTableWidgetItem(filename.split("/")[-1]) inputdialog = InputDialog() inputdialog.exec_() if len(inputdialog.accept_func()[0]) > 0 or len( inputdialog.accept_func()[1]) > 0: table_artist = QTableWidgetItem(inputdialog.accept_func()[0]) table_artist.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) table_song = QTableWidgetItem(inputdialog.accept_func()[1]) table_song.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) else: table_artist = QTableWidgetItem("..artist..") table_artist.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) table_song = QTableWidgetItem("..song..") table_song.setFlags(Qt.ItemIsSelectable | Qt.ItemIsEnabled) self.tableWidget.setItem(self.items, 0, table_artist) self.tableWidget.setItem(self.items, 1, table_song) for i in range(self.playlist.mediaCount()): print(self.playlist.media(i).canonicalUrl().fileName()) self.PlayButton.setEnabled(True) self.items += 1 @Slot() def play(self): if self.playlist.mediaCount() == 0: alert = selectfileAlert() alert.exec_() elif self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.mediaPlayer.pause() else: self.mediaPlayer.play() @Slot() def set_volume(self): volume = self.Volumedial.value() self.mediaPlayer.setVolume(volume) @Slot(QMediaPlayer.State) def mediaStateChanged(self, state): if self.mediaPlayer.state() == QMediaPlayer.PlayingState: self.PlayButton.setIcon(self.style().standardIcon( QStyle.SP_MediaPause)) icon = self.style().standardIcon(QStyle.SP_DialogYesButton) self.PlayingIcon.setPixmap(icon.pixmap(QSize(15, 15))) elif self.mediaPlayer.state() == QMediaPlayer.StoppedState: filename = "........Select song to enjoy the moment........" self.displayfilename_thread.filename = filename self.PlayButton.setIcon(self.style().standardIcon( QStyle.SP_MediaPlay)) icon = self.style().standardIcon(QStyle.SP_DialogNoButton) self.PlayingIcon.setPixmap(icon.pixmap(QSize(15, 15))) else: self.PlayButton.setIcon(self.style().standardIcon( QStyle.SP_MediaPlay)) icon = self.style().standardIcon(QStyle.SP_DialogYesButton) self.PlayingIcon.setPixmap(icon.pixmap(QSize(15, 15))) @Slot() def repeat(self): if self.repeated: self.playlist.setPlaybackMode(QMediaPlaylist.CurrentItemInLoop) self.repeatButton.setFlat(True) self.repeated = False self.statusbar.showMessage("Repeat function is on") else: self.playlist.setPlaybackMode(QMediaPlaylist.CurrentItemOnce) self.repeatButton.setFlat(False) self.repeated = True self.statusbar.showMessage("Repeat function is off") @Slot() def shuffle(self): if self.shuffled: self.playlist.setPlaybackMode(QMediaPlaylist.Random) self.shuffleButton.setFlat(True) self.shuffled = False self.displayfilename_thread.exit() self.statusbar.clearMessage() self.statusbar.showMessage("Shuffle function is on", 100000) self.statusbar.clearMessage() self.displayfilename_thread.start() else: self.playlist.setPlaybackMode(QMediaPlaylist.Sequential) self.shuffleButton.setFlat(False) self.shuffled = True self.displayfilename_thread.exit() self.statusbar.clearMessage() self.statusbar.showMessage("Shuffle function is off", 100000) self.statusbar.clearMessage() self.displayfilename_thread.start() @Slot('qint64', name="positionChanged") def positionChanged(self, position): self.Timeline.setValue(position) self.displaytime_func(position) @Slot() def set_position(self): self.mediaPlayer.setPosition( self.Timeline.value()) #self.mediaPlayer.setPosition(position) @Slot('qint64', name='durationChanged') def durationChanged(self, duration): self.Timeline.setRange(0, duration) def displaytime_func(self, position): sec = round(position / 1000.) sec_dt = datetime.timedelta(seconds=sec) sec_leftdt = datetime.timedelta( seconds=round(self.mediaPlayer.duration() / 1000.) - sec + 1) sec_format = datetime.datetime(2000, 1, 1) + sec_dt sec_formatdt = datetime.datetime(2000, 1, 1) + sec_leftdt self.Timepassed.setText(sec_format.strftime("%M min %S s")) self.Timeleft.setText(sec_formatdt.strftime("-%M min %S s")) @Slot('QString') def displayfilename_func(self, text): filetext = text.split(",")[0].replace("text: ", "") if text.split(",")[1] == " loop: 1": self.statusbar.showMessage(filetext) #self.displayfilename.setText(filetext) if text.split(",")[1] == " loop: 2": self.statusbar.showMessage(filetext) @Slot(QMediaContent) def filenameChange(self, media): if media: self.displayfilename_thread.quit() filename = media.canonicalUrl().fileName() filename = "Now playing ..... " + filename self.displayfilename_thread.filename = filename self.displayfilename_thread.start() @Slot() def mute(self): if self.volume_on: self.muteButton.setIcon(self.style().standardIcon( QStyle.SP_MediaVolumeMuted)) self.mediaPlayer.setMuted(True) self.volume_on = False else: self.muteButton.setIcon(self.style().standardIcon( QStyle.SP_MediaVolume)) self.mediaPlayer.setMuted(False) self.volume_on = True def fixLayout(self): _translate = QCoreApplication.translate self.PlayButton.setIcon(self.style().standardIcon(QStyle.SP_MediaPlay)) self.BackwardButton.setIcon(self.style().standardIcon( QStyle.SP_MediaSkipBackward)) self.ForwardButton.setIcon(self.style().standardIcon( QStyle.SP_MediaSkipForward)) self.StopButton.setIcon(self.style().standardIcon(QStyle.SP_MediaStop)) self.muteButton.setIcon(self.style().standardIcon( QStyle.SP_MediaVolume)) icon = self.style().standardIcon(QStyle.SP_DialogNoButton) self.PlayingIcon.setPixmap(icon.pixmap(QSize(15, 15))) self.addToQueue.setIcon(self.style().standardIcon( QStyle.SP_FileDialogNewFolder)) self.repeatButton.setIcon(self.style().standardIcon( QStyle.SP_BrowserReload)) self.shuffleButton.setIcon(self.style().standardIcon( QStyle.SP_DialogOkButton)) self.shuffleButton.setText(_translate("MainWindow", "")) self.repeatButton.setText(_translate("MainWindow", "")) self.PlayingIcon.setText(_translate("MainWindow", "")) self.PlayButton.setText(_translate("MainWindow", "")) self.BackwardButton.setText(_translate("MainWindow", "")) self.ForwardButton.setText(_translate("MainWindow", "")) self.StopButton.setText(_translate("MainWindow", "")) self.Timepassed.setText(_translate("MainWindow", "00 min 00 s")) self.muteButton.setText(_translate("MainWindow", "")) self.addToQueue.setText(_translate("MainWindow", "")) #self.displayfilename.setText(_translate("MainWindow", "")) #self.displayfilename2.setText(_translate("MainWindow", "")) self.Timeleft.setText(_translate("MainWindow", "-00 min 00 s")) self.tableWidget.setHorizontalHeaderLabels(["Artist", "Song"]) def erroralert(self): print(self.mediaPlayer.error()) #print("type of args: " + type(args), " args: ",args) def getcurrentrow(self, row, col): self.playlist.setCurrentIndex(row + 1) self.mediaPlayer.play()