首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用QtMultimedia播放音频?

用QtMultimedia播放音频?
EN

Stack Overflow用户
提问于 2018-05-12 18:05:38
回答 1查看 3.4K关注 0票数 1

我正在编写的PyQt5程序的一部分是接收音频流并播放它。我已经搜索过,这是我发现的代码,据说是有效的:

代码语言:javascript
复制
url = QtCore.QUrl.fromLocalFile('office theme.mp3')
content = QtMultimedia.QMediaContent(url)
player = QtMultimedia.QMediaPlayer()
player.setMedia(content)
player.play()

然而,这对我不起作用。我尝试过将代码放在不同的地方(在window.show()调用之后,在各种类的内部和外部,等等)。我可以验证MP3是否有效,因为我可以在Clementine、VLC和Dolphin中播放它。它也是直接从我的Plex服务器获取的,所以它肯定是一个有效的MP3文件。我尝试过将这个文件转换为OGG和WAV,但没有运气。我也尝试过FLAC和AAC音频文件,他们也不工作。

我在一个论坛上看到有人建议运行一个命令来检查PyQt是否可以看到任何音频设备。我运行了以下代码并返回多个音频输出设备:

代码语言:javascript
复制
print(QtMultimedia.QAudioDeviceInfo.availableDevices(QtMultimedia.QAudio.AudioOutput))

我所需要做的就是引用一个音频文件(最终从文件对话中打开,但当我到达它的时候,我会跨过那座桥)并播放它。我做得不对吗?我绝不是PyQt方面的专家,我只做了几天的实验。

我目前正在Antergos Arch Linux上运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-12 18:19:27

您必须传递完整的路径,但是如果您只想传递文件的名称,并且程序添加了其余的文件,则可以使用QDir::current()

代码语言:javascript
复制
import sys

from PyQt5 import QtCore, QtWidgets, QtMultimedia

if __name__ == '__main__':
    app = QtWidgets.QApplication(sys.argv)
    filename = 'office theme.mp3'
    fullpath = QtCore.QDir.current().absoluteFilePath(filename) 
    url = QtCore.QUrl.fromLocalFile(fullpath)
    content = QtMultimedia.QMediaContent(url)
    player = QtMultimedia.QMediaPlayer()
    player.setMedia(content)
    player.play()
    sys.exit(app.exec_())
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50309257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档