尝试使用 QMediaPlayer 添加声音事件
Posted
技术标签:
【中文标题】尝试使用 QMediaPlayer 添加声音事件【英文标题】:Trying adding a sound event using QMediaPlayer 【发布时间】:2017-03-16 22:31:46 【问题描述】:我使用 pyqt5 制作了一个小应用程序,我想播放 5 秒的 mp3。我读到如果我使用 Qt 工具,我不需要使用单独的线程,所以我在这里。
为什么这不起作用,是不是更重要?
from PyQt5 import QtCore, QtWidgets, QtMultimedia
player = QtMultimedia.QMediaPlayer()
sound = QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile("c:/alarm.mp3"))
player.setMedia(sound)
player.setVolume(100)
player.play()
我是不是看错文档了?
http://doc.qt.io/qt-5/qmediaplayer.html
player = new QMediaPlayer;
connect(player, SIGNAL(positionChanged(qint64)), this,
SLOT(positionChanged(qint64)));
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();
【问题讨论】:
您可能没有安装必要的音频编解码器。尝试使用.wma
文件。
我尝试使用 .wma 并仍然注意到。我在 Windows 10 上,它应该播放 .wav 文件。我将尝试使用不同的 IDE,在 Pycharm 上它运行时没有错误,没有反馈。进程以退出代码 0 结束,就是这样。
【参考方案1】:
你必须添加QGuiApplication
:
from PyQt5 import QtCore, QtWidgets, QtMultimedia, QtGui
import sys
app = QtGui.QGuiApplication(sys.argv)
player = QtMultimedia.QMediaPlayer()
sound = QtMultimedia.QMediaContent(QtCore.QUrl.fromLocalFile(your filename)
player.setMedia(sound)
player.setVolume(100)
player.play()
sys.exit(app.exec_())
【讨论】:
以上是关于尝试使用 QMediaPlayer 添加声音事件的主要内容,如果未能解决你的问题,请参考以下文章
QMediaPlayer:发出 positionChanged() 时声音中断