Не получается произвести звук не типа wav
Есть код. Указан путь к файлу, всё хорошо, звук воспроизводит. Но когда пытаюсь указать путь к аудиофайлу не формата wav, звук не воспроизводиться. Можно ли другие форматы использовать, если да - то какие?
import sys
from PyQt5.QtMultimedia import QSound
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.sound = QSound('D:\\Downloads\\1605369153_Clap 14.wav', self)
self.play_btn = QPushButton('Play Sound', self)
self.play_btn.clicked.connect(self.sound.play) # 2
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())
Ответы (1 шт):
Автор решения: Serg Bocharov
→ Ссылка
Дело в том, что QSound воспроизводит только wav файлы (может и ошибаюсь) Для воспроизведения других форматов, Вам необходимо использовать QMediaPlayer. Выглядит это как-то так:
import sys
from PyQt5 import QtMultimedia, QtCore
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
UPDATE
class Demo(QWidget):
def __init__(self):
super(Demo, self).__init__()
self.url = QtCore.QUrl.fromLocalFile('D:\\Downloads\\filename1.mp3')
self.content = QtMultimedia.QMediaContent(self.url)
self.player = QtMultimedia.QMediaPlayer()
self.player.setMedia(self.content)
self.play_btn = QPushButton('Play Sound', self)
self.play_btn.clicked.connect(self.player.play)
self.play_btn_2 = QPushButton('Play Sound 2', self)
self.play_btn_2.move(0, 30)
self.play_btn_2.clicked.connect(self.restart)
def restart(self):
self.player.stop()
self.url_new = QtCore.QUrl.fromLocalFile("D:\\Downloads\\filename2.mp3")
self.content_new = QtMultimedia.QMediaContent(self.url_new)
self.player.setMedia(self.content_new)
self.player.play()
if __name__ == '__main__':
app = QApplication(sys.argv)
demo = Demo()
demo.show()
sys.exit(app.exec_())