2

我想在网络上使用 PyQt5 的 QWebEngineView 播放音频。这是我的代码:

import sys

from PyQt5 import QtWebEngineWidgets, QtWidgets

if __name__ == '__main__':
    app = QtWidgets.QApplication([])

    view = QtWebEngineWidgets.QWebEngineView()
    view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.PluginsEnabled, True)
    view.settings().setAttribute(QtWebEngineWidgets.QWebEngineSettings.JavascriptEnabled, True)

    html = '''
    <html>
        <audio id="pron" src="http://static.sfdict.com/staticrep/dictaudio/A06/A0612000.mp3"></audio>
        <button onclick="document.getElementById('pron').play()">Play!</button>
    </html>'''
    view.setHtml(html)

    view.resize(250, 150)
    view.move(300, 300)
    view.show()

    sys.exit(app.exec_())

但是当我点击Play按钮时,音频不播放。我怎么了?

4

1 回答 1

1

QWebEngineView 默认不支持 mp3 播放,至少在我测试过的 Win7 上。如果您将 mp3 url 更改为 ogg one(默认情况下通过 QWebEngineView 支持 ogg 格式),例如

https://upload.wikimedia.org/wikipedia/commons/5/5a/Nl-URL%27s.ogg

那么您的示例将起作用!

当我在网上搜索时,我发现启用 mp3 播放的唯一方法是编译我们自己的 Qt webengine,有人告诉我这样做的方法如下,

编译你自己的 Qt(包括 QtWebEngine),然后编译 PyQt 并在调用它的 configure.py 时,使用 --qmake 将路径传递给正确的 qmake 可执行文件。

如果有人对编译 Qt webengine 感兴趣,这些信息可能会有所帮助

如何使用专有编解码器在 Windows 上编译 Qt webengine (5.11)

无法使用 QtWebEngine 获得 mp3 支持

于 2018-06-28T01:49:38.020 回答