def viewKeyPressEvent(self, e): if e.key() == Qt.Key_Right: self.viewCard.sideToName("front") wordItem = self.dictsModel.nextItem() if wordItem is not None: if wordItem.localVideo: print(self.dictsModel.workData) self.viewCard.updateContent(wordItem) self.setFocus(Qt.ActiveWindowFocusReason) if self.cfg["core"]["autoSoundGo"]: pathsound = self.dictsModel.currentItem.sound if pathsound is not None: self.playSound(pathsound) else: self.player.setMedia(QtMultimedia.QMediaContent()) self.player.stop() elif e.key() == Qt.Key_Left: self.viewCard.sideToName("front") wordItem = self.dictsModel.prevItem() self.viewCard.updateContent(wordItem) self.setFocus(Qt.ActiveWindowFocusReason) self.player.setMedia(QtMultimedia.QMediaContent()) self.player.stop() elif e.key() == Qt.Key_Space: self.viewCard.changeSide() if (self.cfg["core"]["autoSoundTurn"] and self.viewCard.currentSideIndex == 1): pathsound = self.dictsModel.currentItem.sound if pathsound is not None: self.playSound(pathsound)
def __init__(self, parent): super().__init__(parent) self.setupUi(self) self._right_answer = "" self.questions_list: list = [] self.question_num = 0 self.question = {} self.cards_status = {} self.score_ = 0 self.false_answer_list = [] correct_audio_link = QtCore.QUrl.fromLocalFile(f"{AUDIO_DIR}/correct.wav") wrong_audio_link = QtCore.QUrl.fromLocalFile(f"{AUDIO_DIR}/wrong.wav") click_audio_link = QtCore.QUrl.fromLocalFile(f"{AUDIO_DIR}/click.wav") congrats_audio_link = QtCore.QUrl.fromLocalFile(f"{AUDIO_DIR}/congratulations.mp3") self.correct_audio = QtMultimedia.QMediaPlayer() self.correct_audio.setMedia(QtMultimedia.QMediaContent(correct_audio_link)) self.wrong_audio = QtMultimedia.QMediaPlayer() self.wrong_audio.setMedia(QtMultimedia.QMediaContent(wrong_audio_link)) # self.correct_audio = QtMultimedia.QSoundEffect() # self.correct_audio.setSource(correct_audio_link) # self.wrong_audio = QtMultimedia.QSoundEffect() # self.wrong_audio.setSource(wrong_audio_link) self.click_audio = QtMultimedia.QMediaPlayer() self.click_audio.setMedia(QtMultimedia.QMediaContent(click_audio_link)) self.congrats_audio = QtMultimedia.QMediaPlayer() self.congrats_audio.setMedia(QtMultimedia.QMediaContent(congrats_audio_link)) self.back_button.clicked.connect(self.back) self.button_A.clicked.connect(lambda: self.check_answers(self.button_A.text(), mode="multiple", button_clicked=self.button_A)) self.button_B.clicked.connect(lambda: self.check_answers(self.button_B.text(), mode="multiple", button_clicked=self.button_B)) self.button_C.clicked.connect(lambda: self.check_answers(self.button_C.text(), mode="multiple", button_clicked=self.button_C)) self.button_D.clicked.connect(lambda: self.check_answers(self.button_D.text(), mode="multiple", button_clicked=self.button_D)) self.submit.clicked.connect(lambda: self.check_answers(self.answer_box.toPlainText().strip(" "), mode="writing")) # self.next_question_button.clicked.connect(self.next_question) self.show_game_progress(0)
def initSounds(self): self.player = QtMultimedia.QMediaPlayer() self.alertSoundA = QtMultimedia.QMediaContent( QUrl.fromLocalFile("sounds/cr.mp3")) self.alertSoundB = QtMultimedia.QMediaContent( QUrl.fromLocalFile("sounds/mmn.mp3")) self.alertSoundC = QtMultimedia.QMediaContent( QUrl.fromLocalFile("sounds/ta.mp3")) self.alertSoundD = QtMultimedia.QMediaContent( QUrl.fromLocalFile("sounds/tt.mp3"))
def startMedia(self): if self.fileType in {"mp4"}: if not hasattr( self, "player" ): #Если медиаплеер существует то больше его не создавать self.player = QtMultimedia.QMediaPlayer() if not hasattr( self, "viewer" ): #Если проигрыватель существует не создавать больше его self.viewer = QtMultimediaWidgets.QVideoWidget() self.viewer.resize(700, 600) self.viewer.move(0, 0) self.player.setVideoOutput(self.viewer) self.player.setMedia( QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile( self.path))) self.hbox = QtWidgets.QHBoxLayout(self.mediaQt.videoMediaWidget) self.hbox.addWidget(self.viewer) self.player.setPosition(0) self.viewer.show() elif self.fileType in {"png", "jpg", "JPG"}: pix = QtGui.QPixmap() pix.load(self.path) if MediaQt.open: self.hbox = QtWidgets.QHBoxLayout( self.mediaQt.photoMediaWidget) self.lbl = QtWidgets.QLabel(self.mediaQt.photoMediaWidget) self.lbl.setAlignment(QtCore.Qt.AlignCenter) self.hbox.addWidget(self.lbl) self.mediaQt.photoMediaWidget.setLayout(self.hbox) MediaQt.open = False self.lbl.setPixmap(pix) self.lbl.repaint() elif self.fileType in {"mp3"}: if not hasattr(self, "player"): self.player = QtMultimedia.QMediaPlayer() self.player.setMedia( QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile( self.path))) self.hbox = QtWidgets.QHBoxLayout(self.mediaQt.audioMediaWidget) self.lbl = QtWidgets.QLabel() self.lbl.setAlignment(QtCore.Qt.AlignCenter) pix = QtGui.QPixmap() pix.load("Icon//mediaWidget//music.png") self.lbl.setPixmap(pix) self.hbox.addWidget(self.lbl) self.slotSignalMusicVideoControlPanel()
def playSound(self, filePath): if self.player.state() == QtMultimedia.QMediaPlayer.StoppedState: self.media = QUrl.fromLocalFile(filePath) self.content = QtMultimedia.QMediaContent(self.media) self.player = QtMultimedia.QMediaPlayer() self.player.setMedia(self.content) self.player.stateChanged.connect(self.mediaStatusSuond) self.player.play() else: self.player.setMedia(QtMultimedia.QMediaContent()) self.player.stop()
def _open_file(self): """Opens an audio file and adds it to the playlist.""" song = QtWidgets.QFileDialog.getOpenFileName(self, "Open Song", "", "Sound Files (*.mp3)") if song[0]: url = QtCore.QUrl.fromLocalFile(song[0]) if not self.player.playlist().mediaCount(): self.player.playlist().addMedia( QtMultimedia.QMediaContent(url)) self.toggle_play() else: self.player.playlist().addMedia( QtMultimedia.QMediaContent(url))
def stop(self): # Set background to solid color self.cdgImage.fill(0) # clear the mediaPlayer content self.mediaPlayer.setMedia(QtMultimedia.QMediaContent()) self.mediaPlayer.stop() return True
def test_load_valid_media(self): """ Test the load() method of SystemPlayer with a valid media file """ # GIVEN: A SystemPlayer instance and a mocked display player = SystemPlayer(self) mocked_display = MagicMock() mocked_display.controller.media_info.volume = 1 mocked_display.controller.media_info.file_info.absoluteFilePath.return_value = '/path/to/file' # WHEN: The load() method is run with patch.object(player, 'check_media') as mocked_check_media, \ patch.object(player, 'volume') as mocked_volume: mocked_check_media.return_value = True result = player.load(mocked_display) # THEN: the file is sent to the video widget mocked_display.controller.media_info.file_info.absoluteFilePath.assert_called_once_with( ) mocked_check_media.assert_called_once_with('/path/to/file') mocked_display.media_player.setMedia.assert_called_once_with( QtMultimedia.QMediaContent( QtCore.QUrl.fromLocalFile('/path/to/file'))) mocked_volume.assert_called_once_with(mocked_display, 1) assert result is True
def setSoundFile(self, sound, file): try: self.sounds[sound].setMedia( QtMultimedia.QMediaContent(QtCore.QUrl(file))) except: print("Error loading sound file [" + file + "]!\nPlease check file path and format!")
def showAnswer(self): if self.started: self.ui.l_total.show() self.ui.l_total.setText( self.tr('The correct answer is {}').format(self.answer)) self.ui.label.setText('=%d' % self.answer) if self.speech and IS_SOUND_WORKING: # pronounce one digit at a time t = '= %d' % self.answer if args.verbose: print(t) if self.one_digit: t = ' '.join(list(t)).replace('- ', '-') self.player.stateChanged.disconnect(self.clearLabel) self.player.setMedia( QtMultimedia.QMediaContent( QtCore.QUrl.fromLocalFile(self.sounds[t]))) self.player.play() self.player.stateChanged.connect(self.restartPlay) else: QtCore.QTimer.singleShot(self.timeout + 2000, self.ui.label.clear) QtCore.QTimer.singleShot(self.timeout + 2000, self.ui.l_total.hide) self.timerRestartPlay.setInterval(2 * self.flash + 2000) self.timerRestartPlay.start()
def setupUi(self, Form): audio = os.path.join(os.path.dirname(__file__), "audio") self.image = os.path.join(os.path.dirname(__file__), "image") Form.setObjectName(_fromUtf8("Form")) Form.resize(570, 428) Form.setStyleSheet(_fromUtf8("")) self.label = QtWidgets.QLabel(Form) self.label.setGeometry(QtCore.QRect(0, 0, 571, 431)) self.label.setText(_fromUtf8("")) self.label.setPixmap( QtGui.QPixmap(_fromUtf8(os.path.join(self.image, "fim.jpg")))) self.label.setScaledContents(True) self.label.setObjectName(_fromUtf8("label")) self.label_2 = QtWidgets.QLabel(Form) self.label_2.setGeometry(QtCore.QRect(200, 10, 151, 91)) font = QtGui.QFont() font.setFamily(_fromUtf8("Sitka Small")) font.setPointSize(72) font.setBold(True) font.setWeight(75) self.label_2.setFont(font) self.label_2.setObjectName(_fromUtf8("label_2")) audioUrl = QtCore.QUrl.fromLocalFile(os.path.join(audio, "fim.mp3")) audioOutput = QtMultimedia.QMediaContent(audioUrl) self.mediaObject = QtMultimedia.QMediaPlayer() self.mediaObject.setMedia(audioOutput) self.mediaObject.play() self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form)
def play_button_event(self): self.play_button.setEnabled(False) self.player.stop() self.playlist.clear() voice = self.voice_info[self.voice_option.currentIndex()]['code'] speed = 0.7 + 0.6 * self.speed_slider.value() / 99 data = { "text": self.plainTextEdit.toPlainText(), "voice": voice, "id": "2", "without_filter": False, "speed": speed, "tts_return_option": 3 } headers = {'Content-type': 'application/json', 'token': self.TOKEN} response = requests.post(self.TTS_URL, data=json.dumps(data), headers=headers) print(response.headers) print(response.status_code) with open('temp/raw.mp3', 'wb') as f: f.write(response.content) file = QtCore.QUrl.fromLocalFile('temp/raw.mp3') content = QtMultimedia.QMediaContent(file) self.playlist.addMedia(content) self.player.setVolume(self.volum_slider.value()) self.player.play() self.play_button.setEnabled(True)
def go_to_settings_stage(self): """Открывает окно настроек, создаёт все кнопки и всё там делает""" self.settings_hbox_1 = QtWidgets.QHBoxLayout() self.settings_vbox_1 = QtWidgets.QVBoxLayout() self.settings_hbox_2 = QtWidgets.QHBoxLayout() if self.settigs_elements_created == True: self.show_settings_elements() elif self.settigs_elements_created == False: self.create_settings_elemens() try: with open( 'config.json', 'r', encoding="utf-8", ) as config_file: self.path_to_the_installed_music = config_file.read() self.music_player.setMedia( QtMultimedia.QMediaContent( QtCore.QUrl(self.path_to_the_installed_music))) self.label_music_status.setText('Звук установлен') self.label_music_status.show() self.btn_play_music.show() except: self.label_music_status.setText('Звук не установлен') self.label_music_status.show()
def load_mp3(self, filename): media = QtCore.QUrl.fromLocalFile(filename) content = QtMultimedia.QMediaContent(media) self.player = QtMultimedia.QMediaPlayer() self.player.setMedia(content)
def process_event(self, event, value): PlaySoundFunctor.player.setMedia( QtMultimedia.QMediaContent( QtCore.QUrl.fromLocalFile(self.sound_file))) PlaySoundFunctor.player.setVolume(self.volume) PlaySoundFunctor.player.play() return True
def playBGM(self): url = QUrl.fromLocalFile("Sound/bgm.wav") content = QtMultimedia.QMediaContent(url) self.bgmPlayer = QtMultimedia.QMediaPlayer() self.bgmPlayer.setMedia(content) self.bgmPlayer.setVolume(100) self.bgmPlayer.play()
def browse_folder(self): file_name, _ = QtWidgets.QFileDialog.getOpenFileName( self, "Выберите файл") # открыть диалог выбора файла и установить значение переменной # равным файлу (кортеж формата file_name = (файл, путь)) if file_name: # не продолжать выполнение, если пользователь не выбрал файл self.videoPlayer.setMedia( QtMultimedia.QMediaContent( QtCore.QUrl.fromLocalFile(file_name))) # добавить видео self.videoPlayer.play() # воспроизводить видео self.textEdit.clear() # Clear log field self.paw_centers = { 1: [], ## 2: [], # CLEAR 3: [], # DICTIONARY 4: [] } ## self.textEdit.append( "Открыт файл: " + file_name) # добавить сообщение об открытии файла в textEdit print(self.moved)
def changeStackWidget(self, i): self.player.setMedia(QtMultimedia.QMediaContent()) self.player.stop() if self._currentStackWidget == "cardEditView": self.cfg.save() elif self._currentStackWidget == "chooseDict": check = self.chooseDict.checkedDicts() self.dictsModel.updateWorkData(check, self.dictSeq) self.newGame() elif self._currentStackWidget == "gsettings": self.gsettings._sections["gSettingsGeometry"].updateCfg() self.resizeCardView() print(self.cfg["ui"]["viewCardWidth"], "!!!!!!!!!!!!!!") self.video.setSizeVideo(self.cfg["ui"]["viewCardWidth"] + 150, self.cfg["ui"]["viewCardHeight"]) # todo update geometry elif self._currentStackWidget == "video": self.video.pause() self._currentStackWidget = self.centerStackFrame.stack.widget(i).objectName() # self.stackWidgets[self._currentStackWidget].setFocus(Qt.ActiveWindowFocusReason) if self.currentStackWidget == "view": self.toolBar.setDisabledButton("cardrefresh", False) else: self.toolBar.setDisabledButton("cardrefresh", True)
def initGUI(self): self.videoWidget = QtMultimediaWidgets.QVideoWidget() self.setCentralWidget(self.videoWidget) self.mediaPlayer = QtMultimedia.QMediaPlayer(None, QtMultimedia.QMediaPlayer.VideoSurface) self.mediaPlayer.setVideoOutput(self.videoWidget) local = QtCore.QUrl.fromLocalFile('C:/Users/Owner/PycharmProjects/BF4 Deployment Timer/vidbackground2.mov') media = QtMultimedia.QMediaContent(local) self.mediaPlayer.setMedia(media) print('state: ' + str(self.mediaPlayer.state())) print('mediaStatus: ' + str(self.mediaPlayer.mediaStatus())) print('error: ' + str(self.mediaPlayer.error())) self.mediaPlayer.play() print('state: ' + str(self.mediaPlayer.state())) print('mediaStatus: ' + str(self.mediaPlayer.mediaStatus())) print('error: ' + str(self.mediaPlayer.error()))
def music(self): app = QtCore.QCoreApplication(sys.argv) url = QtCore.QUrl.fromLocalFile("./fairydust.mp3") content = M.QMediaContent(url) player = M.QMediaPlayer() player.setMedia(content) player.play()
def updateAudio(self, audio): self.audio = audio if self.audio is not None: p = QtCore.QUrl.fromLocalFile(self.audio.path) self.m_audioOutput.setMedia(QtMultimedia.QMediaContent(p)) self.spectrumWidget.update_sampling_rate(self.audio.sr) self.hierarchyWidget.setNumChannels(self.audio.num_channels)
def __init__(self, parent=None): QtWidgets.QDialog.__init__(self, parent) self.ui = uic.loadUi( os.path.join(os.path.dirname(__file__), "Layout/form.ui"), self) self.player = QtMultimedia.QMediaPlayer( None, QtMultimedia.QMediaPlayer.VideoSurface) self.button1 = self.findChild(QtWidgets.QPushButton, 'play') self.button2 = self.findChild(QtWidgets.QPushButton, 'pause') self.button3 = self.findChild(QtWidgets.QPushButton, 'stop') file = os.path.join(os.path.dirname(__file__), "cat.mp4") # file="https://www.convertinmp4.com/redirect.php?video=P69pu5Q3ZcQ&v=DXYECd2VK6cJxTZ2o7P2t8TqzGEeP6Sd" self.player.setMedia( QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile(file))) self.player.setVideoOutput(self.ui.widget) self.player.play() self.button1.clicked.connect( self.player.play ) # Remember to pass the definition/method, not the return value! self.button2.clicked.connect( self.player.pause ) # Remember to pass the definition/method, not the return value! self.button3.clicked.connect( self.player.stop ) # Remember to pass the definition/method, not the return value!
def on_browse_button_released(self): #path = unicode(QFileDialog.getOpenFileName(self)) path = QFileDialog.getOpenFileName(self)[0] name = os.path.basename(path) if not name.endswith('.wav'): self.track_label.setText(u"{} no es un archivo .wav".format(name)) return self.player.setMedia(QtMultimedia.QMediaContent(QUrl.fromLocalFile(path))) self.track_label.setText(name) self.canvas.plot_spectrogram(path) print('path = {}'.format(path)) curve = get_pitch_decompy_values(path, remove_silencess = True, interpolate = False) vector, _ = naive_vectorizer(curve, true_features = self.cols) X = [vector] X = self.scaler.transform(X) predicted = self.clf.predict(X)[0] print('predicted = {}'.format(predicted)) self.entonema_label.setText( u"Predicción de entonema: {}".format(predicted) )
def update_utterance(self, utterance): if utterance is None: return self.utterance = utterance self.reset_text() if self.utterance in self.corpus.segments: segment = self.corpus.segments[self.utterance] file_name, begin, end = segment.split(' ') begin = float(begin) end = float(end) wav_path = self.corpus.utt_wav_mapping[file_name] duration = end - begin y, sr = librosa.load(wav_path, offset=begin, duration=duration, sr=1000) begin_samp = int(begin * sr) x = np.arange(start=begin_samp, stop=begin_samp + y.shape[0]) self.min_time = begin self.max_time = end else: wav_path = self.corpus.utt_wav_mapping[self.utterance] y, sr = librosa.load(wav_path, sr=1000) x = np.arange(y.shape[0]) self.min_time = 0 self.max_time = y.shape[0] / sr p = QtCore.QUrl.fromLocalFile(wav_path) self.m_audioOutput.setMedia(QtMultimedia.QMediaContent(p)) self.m_audioOutput.setMinTime(self.min_time) self.m_audioOutput.setMaxTime(self.max_time) self.sr = sr self.ax.getPlotItem().clear() self.ax.plot(x, y, pen=pg.mkPen('w', width=3))
def initUI(self, maxTime, cava, casa): self.setStyleSheet("QWidget { background: rgb(0,0,0) }") self.setFixedSize(772, 672) self.setWindowTitle("App") self.fim = None self.battle = False self.seque_cav = [0, 1, 2, 3, 4] self.cavaleiros = cava audioUrl = QtCore.QUrl.fromLocalFile( os.path.join(self.audio, "soundtrack.mp3")) audioOutput = QtMultimedia.QMediaContent(audioUrl) self.mediaObject = QtMultimedia.QMediaPlayer() self.mediaObject.setMedia(audioOutput) self.mediaObject.play() self.player = Player(37, 37) self.casas = casa self.maxTime = maxTime self.mapa = Mapa(42, 42, mapa_casas) self.caminho = IA().solu(self.player, self.casas[0], self.mapa) self.timer = QtCore.QBasicTimer() self.novo = 0 self.casa_at = 0 self.total_casa = 12 self.tempo = 0 self.fim = None self.start() self.show()
def present_answer(self, type, answer): self.jeopardy_wall_box.setHidden(True) self.answer_box.setHidden(False) if type == "text": self.answer_label.setHidden(False) answer = answer.split("\\n") answer_out = [] for line in answer: answer_out.append("\n".join(wrap(line, answer_length))) self.answer_label.setText("\n".join(answer_out)) elif type == "image": self.answer_label.setHidden(False) image = self.scale( QtGui.QPixmap(os.path.join(self.file_head, answer))) self.answer_label.setPixmap(image) elif type == "video": self.video_widget.setVisible(True) media_source = QtMultimedia.QMediaContent( QtCore.QUrl.fromLocalFile( QtCore.QFileInfo(os.path.join(self.file_head, answer)).absoluteFilePath())) self.video_player.setMedia(media_source) self.video_player.play() elif type == "audio": self.answer_label.setHidden(False) self.answer_label.setText("listen up!") self.audio = Jeopardy.Music(os.path.join(self.file_head, answer)) self.audio.play() elif type == "audiotext": text_split = answer.split(";") self.answer_label.setHidden(False) self.answer_label.setText(text_split[1]) self.audio = Jeopardy.Music( os.path.join(self.file_head, text_split[0])) self.audio.play()
def _make_playlist(self): playlist = QtMultimedia.QMediaPlaylist() for song in self.songs_current: song_file = QtCore.QUrl.fromLocalFile(song.path) media = QtMultimedia.QMediaContent(song_file) playlist.addMedia(media) self.playlist = playlist
def __init__(self, source="data/music.ogg"): super(Jeopardy.Music, self).__init__() url = QtCore.QUrl.fromLocalFile( QtCore.QFileInfo(source).absoluteFilePath()) content = QtMultimedia.QMediaContent(url) self.player = QtMultimedia.QMediaPlayer() self.player.setMedia(content)
def search_volt(self, get_v): if get_v == 0: return for i in range(0, len(get_v), 3): if get_v[i:i + 2] == "BB" and get_v[i + 6:i + 8] == "C3" and get_v[ i + 21:i + 32] == "CC 33 C3 3C": addr_v = get_v[i + 4] # 地址位 high_volt = get_v[i + 9:i + 11] low_volt = get_v[i + 12:i + 14] hex_volt = high_volt + low_volt self.real_v = int(hex_volt, 16) print("得到第%c台电压值:" % addr_v, self.real_v) self.voltage[int(addr_v) - 1] = self.real_v # 更新电压值数组 if get_v[i:i + 8] == "01 04 02": high_tem = get_v[i + 9:i + 11] low_tem = get_v[i + 12:i + 14] hex_tem = high_tem + low_tem real_tem = int(hex_tem, 16) / 10 print("温度是:", real_tem) self.lcdNumber.display(real_tem) if real_tem > 50: url = QUrl.fromLocalFile(".\\res\\warm.mp3") content = QtMultimedia.QMediaContent(url) player = QtMultimedia.QMediaPlayer() player.setMedia(content) player.play() print("play") player.setVolume(10) QMessageBox.about(None, "错误", "温度异常!") else: self.lcdNumber.display(0)
def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QtWidgets.QApplication.translate("MainWindow", "App", None, -1)) self.label.setText( QtWidgets.QApplication.translate("MainWindow", "Alege unul dintre muzicieni", None, -1)) self.comboBox.setItemText( 0, QtWidgets.QApplication.translate("MainWindow", "asdf", None, -1)) self.generareBtn.setText( QtWidgets.QApplication.translate("MainWindow", "Generare", None, -1)) self.playBtn.setText( QtWidgets.QApplication.translate("MainWindow", "PushButton", None, -1)) self.pauseBtn.setText( QtWidgets.QApplication.translate("MainWindow", "PushButton", None, -1)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), QtWidgets.QApplication.translate("MainWindow", "Generare piesa", None, -1)) self.pushButton.setText( QtWidgets.QApplication.translate("MainWindow", "apasa-l", None, -1)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_2), QtWidgets.QApplication.translate("MainWindow", "Creare model", None, -1)) self.url = Q.QUrl.fromLocalFile(os.path.abspath('byron.mp3')) self.content = M.QMediaContent(self.url) self.player = M.QMediaPlayer() self.player.setMedia(self.content) self.player.play()