4

我已将 QtWebEngine 编译到我的 i.MX6 嵌入式设备中。当我尝试使用 quicknanobrowser 播放 youtube Video 时,视频播放但没有声音。事实上,当我尝试测试播放hpr.dogphilosophy.net/test中的音频文件时,即使网站说支持浏览器编解码器,也没有声音。

我启用了pulseaudio、gstreamer、ffmpeg、opus、vpx、libwebp,但仍然没有声音。

但是,我可以使用 gst-launch 播放视频并且会有声音。

不启用声音的 quicknanobrowser 是否有问题?或者是否有我需要添加到嵌入式系统的组件?

编辑:Alsa 和 pulseaudio,GStreamer 都可以很好地处理声音。

4

1 回答 1

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和 in qt5.7/qtwebengine/src/core/config/embedded_linux.pri,我添加了一个新标志:

use_alsa=1

使用此设置,我的嵌入式 ARM Linux 上有音频并带有标志:

enable_webrtc=1

我能够开始一个带有视频和音频的 WebRTC 会话。

于 2016-08-11T16:24:38.037 回答