随着 PyQt6 模块的发布,我开始将我的代码从 PyQt5 移植到 PyQt6。
在 PyQt 中,有一个名为 phonon 的模块,用于播放声音。
在 PyQt5 中,有一个名为 QMediaPlayer 的模块,用于播放声音。
现在,如何在 PyQt6 中播放声音?
有网站说QMediaPlayer还没有移植,需要在PyQt6版本PyQt6.2中完成。
该网站是这样的 - https://www.pythonguis.com/faq/pyqt-pyside6-missing-modules/
该网站还表示,PyQt6.2 将于 2021 年 9 月发布。
导入是否已重命名?
应当指出的是:
在 Qt6 中,如果你想播放音乐文件,那么你有 2 个选择:
Q音效
import sys
from PyQt6.QtCore import QUrl
from PyQt6.QtGui import QGuiApplication
from PyQt6.QtMultimedia import QSoundEffect
def main():
app = QGuiApplication(sys.argv)
filename = "sound.wav"
effect = QSoundEffect()
effect.setSource(QUrl.fromLocalFile(filename))
# possible bug: QSoundEffect::Infinite cannot be used in setLoopCount
effect.setLoopCount(-2)
effect.play()
sys.exit(app.exec())
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
QMediaPlayer。
import sys
from PyQt6.QtCore import QUrl
from PyQt6.QtGui import QGuiApplication
from PyQt6.QtMultimedia import QSoundEffect
def main():
app = QGuiApplication(sys.argv)
filename = "sound.wav"
effect = QSoundEffect()
effect.setSource(QUrl.fromLocalFile(filename))
# possible bug: QSoundEffect::Infinite cannot be used in setLoopCount
effect.setLoopCount(-2)
effect.play()
sys.exit(app.exec())
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
以前的类从 Qt 6.2 开始可用,目前 PyQt6 6.2.0 的 pypi 中没有可用的版本,但您可以从 Riverbank 计算 PyPI Server 存储库安装它(请参阅此处了解更多信息):
python -m pip install --index-url https://riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt6
Run Code Online (Sandbox Code Playgroud)
可能几天后它就会在 pypi 中可用