gpt4 book ai didi

python - 使用 QtMultimedia 播放音频?

转载 作者:行者123 更新时间:2023-11-30 22:15:25 27 4
gpt4 key购买 nike

我正在编写的 PyQt5 程序的一部分是接收音频流并播放它。我四处搜索,这是我发现的据说可以工作的代码:

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 是否可以看到任何音频设备。我运行了以下代码,它返回了多个音频输出设备:

print(QtMultimedia.QAudioDeviceInfo.availableDevices(QtMultimedia.QAudio.AudioOutput))

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

我目前在 Antergos Arch Linux 上运行。

最佳答案

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

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_())

关于python - 使用 QtMultimedia 播放音频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50309257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com