我想使用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按钮时,音频无法播放。我怎么了

最佳答案

QWebEngineView doesn't support mp3 playback by default,至少在我测试过的Win7上。如果您将mp3网址更改为ogg一个(默认情况下,QWebEngineView支持ogg格式),例如

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


那么您的示例将起作用!

当我搜索网络时,我发现启用mp3播放的唯一方法是编译我们自己的Qt网络引擎someone told me the way to do it,如下所示,


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


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

How to compile Qt webengine (5.11) on Windows with proprietary codecs

Unable to get mp3 support with QtWebEngine

08-26 13:41