首页 > 解决方案 > pyqt5 qwebenginview 不会自动播放 youtube 视频

问题描述

我正在尝试使用 Qwebengineview 查看 youtube 视频列表,但浏览器不会自动播放视频,我使用的是 PyQt5 5.13.1 Python 3.6

这是一个示例代码

from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEnginePage
from PyQt5.QtWidgets import QApplication

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    webview = QWebEngineView()
    profile = QWebEngineProfile("my_profile", webview)
    profile.defaultProfile().setPersistentCookiesPolicy(QWebEngineProfile.ForcePersistentCookies)
    webpage = QWebEnginePage(profile, webview)
    webview.setPage(webpage)
    webview.load(QUrl("https://www.youtube.com/watch?v=VzIVI2fsRb0"))
    webview.show()
    sys.exit(app.exec_())

标签: pythonpython-3.xpyqt5qwebengineview

解决方案


我已经找到了使用 QWebEngineSettings 的解决方案,这是一个完整的工作示例,以防有人需要它

from PyQt5.QtCore import QUrl
from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEngineProfile, QWebEnginePage, QWebEngineSettings
from PyQt5.QtWidgets import QApplication
import time

if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    webview = QWebEngineView()
    profile = QWebEngineProfile("my_profile", webview)
    profile.defaultProfile().setPersistentCookiesPolicy(QWebEngineProfile.ForcePersistentCookies)
    webpage = QWebEnginePage(profile, webview)
    webpage.settings().setAttribute(QWebEngineSettings.PlaybackRequiresUserGesture, False)

    webview.setPage(webpage)
    webview.load(QUrl("https://www.youtube.com/watch?v=aKCNrkERJ3E"))
    webview.show()

    sys.exit(app.exec_())

推荐阅读