尝试使用 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() 时声音中断

Qt QMediaPlayer发布没有声音

QMediaPlayer 在睡眠前不播放

在 Qt 和 C++ 中改变 mp3 速度 [QMediaPlayer]

如何使用 QMediaPlayer 播放流媒体音频?

在 AS3 中向子影片剪辑添加/删除事件侦听器