无法使用 QtWebEngine 获得 mp3 支持

Unable to get mp3 support with QtWebEngine

我从 git 来源构建了 QtWebEngine 5.7.1 以获得专有编解码器的支持。

我给qtwebengine.pro写了"WEBENGINE_CONFIG+=use_proprietary_codecs"。当 qmake 配置项目时,我看到日志说 MP3 和 H264 编解码器已启用。

我花了一天时间用 msvc2015 在 32 位中完全编译了 QtWebEngine 并且... mp3 支持仍然不工作!

我使用 html5test.com 来快速了解网络浏览器的功能。

我搜索了一下,发现 ffmpegsumo.dll 还没有建成。我试图通过互联网获取 32 位副本,但我真的不知道该把它放在哪里,我尝试了不同的地方,但仍然无法正常工作。最后我觉得这不是个好主意。

QtWebEngine如何使用mp3编解码器?我有点迷路...

在 chromium GYP build parameters 文件中,我可以读取:

['proprietary_codecs==1', {
        'defines': ['USE_PROPRIETARY_CODECS'],
}],

然后我认为 Qt WebEngine Features 文档中有错误。

您应该尝试在 qtwebengine.pro 文件中添加

WEBENGINE_CONFIG+=proprietary_codecs

而不是

WEBENGINE_CONFIG+=use_proprietary_codecs

我终于找到了解决办法。简而言之,不要尝试使用 Qt Creator 编译 Qt SDK 或其任何部分 ...

只需在简单的cmd.exe中使用qmakenmakeshell。这是我在草原上的做法:

首先,我使用 MaintenanceTools 下载了 Qt SDK (5.7.1) 的源代码。

然后,我下载了额外的工具:

一定要把每个.exe都添加到系统路径,然后重启电脑

假设Qt SDK安装在c:\Qt,版本是5.7.1,用MSVC2015编译,你启动cmd.exe然后输入:

cd C:\Qt.7\Src\qtwebengine\

C:\Qt.7\msvc2015\bin\qmake WEBENGINE_CONFIG+=use_proprietary_codecs

* Wait for basic configuration ... *

nmake

* Wait for compilation ... *

nmake install

* Wait for files copy into SDK ... *

然后就可以像刚刚下载的一样正常使用SDK了

我尝试了 Sébastien Bémelmans 的解决方案,但它对我不起作用(我有 Qt 版本 5.10.1)。

相反,我在 qt forum 上找到了一个解决方案,我对其进行了一些修改以适合实际的 Qt 5.10.1 版本

在完成 Sébastien Bémelmans 所说的所有操作之后:

#Edit ..\%QT_SOURCES_DIR%\qtwebengine\.qmake.conf
#Add
WEBENGINE_CONFIG += use_proprietary_codecs

#Edit ...\%QT_SOURCES_DIR%\qtwebengine\configure.json
#Search for webengine-proprietary-codecs
"autoDetect": false,
into
"autoDetect": true,
#Run qmake into ...\%QT_SOURCES_DIR%\qtwebengine\ (normally no need of adding WEBENGINE_CONFIG += use_proprietary_codecs after qmake)

我在 Whosebug 上创建了一个新主题,逐步介绍了如何做到这一点(我花了 5 天时间才找到这些,所以我想节省其他人的时间):