python - 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_())
解决方案
我已经找到了使用 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_())
推荐阅读
- reactjs - 我如何在 useState 之前调用函数?
- git - 如何删除不需要的提交文件
- wordpress - Timber 获取类别及其子项的列表
- python - 如何在 django rest 框架中通过状态字段获取数据
- ruby-on-rails - 禁用内联或按方法臭味代码气味检测器
- javascript - Puppeeter - 捕获无连接错误并执行一些操作
- python - 尽管文件已完成,脚本仍继续从文件中读取
- c# - Xamarin.Forms 从 TabbedPage 导航
- google-cloud-firestore - 如果有的话,一个非常大的常用集合的一般限制是什么?
- c# - 如何使用 C# Selenium 在没有 ID 的情况下单击启用了 __doPostBack 的更新按钮?