一、问题
使用 pyqt、pyside 的 QWebEngineView 编写的浏览器无法播放html页面中的视频
二、原因
查阅资料后发现,对于视频是 m3u8 格式的文件 , QT 安装包自带的 QWebEngineView 是不支持在线解码的,所以播放不了,大致和 html5 视频播放技术的相关版权有关,具体不深究。总之官网提供的 QWebEngineView 出于各种非技术层面的原因不能播放H5的视频
三、解决办法
- 重新编译 QT 生成 dll 文件
- 将文件中的 Qt6WebEngine.dll 和 Qt6WebEngineCore.dll 替换掉项目环境目录下的对应文件(对应项目环境目录在项目根路径下的
venv\Lib\site-packages\PySide6
或venv\Lib\site-packages\PyQt6
中)
ps:编译过程需要依赖指定环境,且流程相对复杂,编译时间较长,网上有很多类似的编译方法,可以自行去搜,我就不贴别人的链接了
编译好的 QT 文件可以从这里下载:
- PyQt6.6.2
- windows版