背景交代
QtWebEngine提供接入Chromium内核做浏览器的便利.通过简易浏览器的制作,逐渐发现Chromium默认不支持mp3 h.264等,所以需要重新设置自己编QtWebEngine模块
找到一篇非常对路的文章,我将文章内容结合我实际操作,记录在下面. 原文链接http://blog.csdn.net/saga1979/article/details/51734001
操作步骤
- Qt安装包下载地址 注意安装时要选中源码安装
- 安装python 2.7.12 下载参考地址 注意Python3.x不能用来编Chromium
- 安装ActivePerl 下载参考地址 不确定是否依赖,从别的文章得知可能需要.
- QtCreator中打开qt源码中的 C:\Qt\Qt5.7.0\5.7\Src\qt.pro
修改文件:C:\Qt\Qt5.7.0\5.7\Src\qtwebengine\src\core\gyp_run.pro 位于
GYP_CONFIG +=
之前第19行插入
GYP_CONFIG += proprietary_codecs=1 ffmpeg_branding=Chrome
修改文件:C:\Qt\Qt5.7.0\5.7\Src\qtwebengine\src\3rdparty\chromium\third_party\ffmpeg\ffmpeg.gyp
‘use_system_ffmpeg%’: 0,
之后第21行插入
‘ffmpeg_branding%’:”Chrome”,
修改文件:C:\Qt\Qt5.7.0\5.7\Src\qtwebengine\qtwebengine.pro 第三行插入
WEBENGINE_CONFIG += use_proprietary_codecs
单独右键构建QtWebEngine遇到问题
error C2220: warning treated as error - no ‘object’ file generated
将”控制面板”–”区域和语言”–”管理”–”非Unicode程序的语言”改成英语(美国)解决此问题,不需要修改源码编码,(引用文提到的方法是修改源码为utf8有BOM).这个办法是部分帖子在说编Chromium前置条件的时候提到的.
- 编译时间非常长, 直到我写文章这会儿,只编到 [6288/12878]
结果呢
使用Chrome和自己套的浏览器分别打开html5test.com比较得分差异,算是成功了吧,还差一点分.
Audio - Speech Synthesis Yes | No -2 points
Web Components - Shadow DOM Yes | Partial -2 points
Peer To Peer - Access the webcam Yes | Prefixed -5 points
Security - Credential Management Yes | No -6 points
其实发现做个浏览器细节内容好多啊. 比如说我现在这个浏览器还没有历史,没有收藏,没有账号输入; flash可以支持, 但是全屏时QtWebEngineProcessd会崩溃[QTWB-6],debug状态浏览器效率偏低; 我还打算做鼠标手势, 本地划词翻译, 代理等等…
补充
- 我上传了编好的文件, 只选取了Release版, 如果您做浏览器做好后用我的替换测试一下播放mp3就行了. 如果要debug可以评论给我.
QtWebEngine_VS2013_x86_RELEASE.7z 包含QtWebEngineProcess.exe、Qt5WebEngine.dll、Qt5WebEngineCore.dll、Qt5WebEngineWidgets.dll
链接:http://pan.baidu.com/s/1dEHb4dz 密码:f7y0 *
这是2016年发的文章,当时打包7z明明没有密码,但是大家留言告诉我有密码,2017年1月份我还试过一遍没有密码。如今我自己也发现有密码了。当然我也不知道设了啥密码!