QtWebEngine Quicknano在嵌入式Linux中没有声音

时间:2016-03-12 01:24:27

标签: html5 qt embedded-linux yocto qtwebengine

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

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

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

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

编辑:Alsa和pulseaudio,GStreamer都能正常工作。

1 个答案:

答案 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会话。