我已将QtWebEngine编译到我的i.MX6嵌入式设备中。当我尝试使用quicknanobrowser播放youtube视频时,视频播放但没有声音。实际上,当我尝试在hpr.dogphilosophy.net/test中测试播放音频文件时没有声音,即使该网站说支持浏览器编解码器。
我启用了pulseaudio,gstreamer,ffmpeg,opus,vpx,libwebp但仍然没有声音。
但是,我可以用gst-launch播放视频,但会有声音。
quicknanobrowser不能启用声音是否有问题?或者是否需要添加到嵌入式系统的组件?
编辑:Alsa和pulseaudio,GStreamer都能正常工作。
答案 0 :(得分:1)
您需要强制QtWebEngine
使用ALSA。在嵌入式系统中,默认情况下禁用它。
在qt5.7/qtwebengine/src/3rdparty/chromium/media/media.gyp
中,有一项测试可以检查我们是否在嵌入式系统上:
# Enable ALSA and Pulse for runtime selection.
['(OS=="linux" or OS=="freebsd" or OS=="solaris") and ((embedded!=1 and chromecast==0) or is_cast_desktop_build==1)', {
# ALSA is always needed for Web MIDI even if the cras is enabled.
'use_alsa%': 1,
'conditions': [
['use_cras==1', {
'use_pulseaudio%': 0,
}, {
'use_pulseaudio%': 1,
}],
],
}, {
'use_alsa%': 0,
'use_pulseaudio%': 0,
}],
我将上次use_alsa%
更改为1
,并在qt5.7/qtwebengine/src/core/config/embedded_linux.pri
中添加了新标记:
use_alsa=1
通过这些设置,我的嵌入式ARM Linux上有音频,并带有标志:
enable_webrtc=1
我可以使用视频和音频开始WebRTC会话。