You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于PyQt5的Qt WebBrowser无法播放网页视频 求可用解决代码

问题原因
  • PyQt5 默认的 QWebEngineView 没有开放媒体播放相关权限,同时浏览器内核默认要求视频播放需要用户主动触发手势,自动播放的视频会被拦截
  • 默认编译的 QtWebEngine 内核未内置 H.264 等商用视频解码器,导致多数站点的MP4格式视频无法解码播放
修复后可支持视频播放的代码
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebEngineWidgets import *
import sys

class MainWindow(QMainWindow):
    def __init__(self, *args, **kwargs):
        super(MainWindow,self).__init__(*args, **kwargs)
        self.browser = QWebEngineView()
        self.browser.setUrl(QUrl("http://www.google.com"))
        self.setCentralWidget(self.browser)
        self.show()

if __name__ == '__main__':
    # 开启高清屏适配,可选配置
    QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
    app = QApplication(sys.argv)

    # 全局配置WebEngine内核参数,开启视频播放相关支持
    web_settings = QWebEngineSettings.globalSettings()
    web_settings.setAttribute(QWebEngineSettings.JavascriptEnabled, True)
    web_settings.setAttribute(QWebEngineSettings.PluginsEnabled, True)
    web_settings.setAttribute(QWebEngineSettings.FullScreenSupportEnabled, True)
    web_settings.setAttribute(QWebEngineSettings.AutoLoadImages, True)
    # 关闭播放需要用户手势的限制,允许视频自动播放
    web_settings.setAttribute(QWebEngineSettings.PlaybackRequiresUserGesture, False)
    
    window = MainWindow()
    app.exec_()
额外注意事项
  • 如果修改配置后仍无法播放H.264格式的视频,说明你当前安装的PyQtWebEngine版本没有内置专利解码器,你可以自行编译带专有解码器的QtWebEngine版本,或者升级到PyQtWebEngine 5.15及以上的官方最新版本,部分新版本已经内置了常用视频解码器支持
  • DRM加密的付费视频、平台专属加密视频暂时无法通过该方案支持,这类内容需要单独适配DRM认证模块

内容的提问来源于stack exchange,提问作者AnonimTM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 23:30:04