Firefox 或 Chrome HTML5 视频没有声音,但 Flash 可以使用 (alsa)

Firefox 或 Chrome HTML5 视频没有声音,但 Flash 可以使用 (alsa)

我发布这个问题主要是因为经过多年(是的,多年 - 例如,参见[这篇文章][1])生活在这种挫败感中,我昨天终于解决了这个问题,并希望让其他人免受这种挫败感。

我主要用于Firefox浏览需求,但在某些时候我遇到了无法在 Twitter 上观看视频的情况,并发现Chrome可以播放它们,只是我听不到任何声音。一些调查表明,这是因为这些是HTML5视频,Firefox 和 Chrome 都不会在 HTML5 视频上产生声音(例如在 Youtube 上进行的测试),而 Flash 在两者上都工作正常。

如果您遇到同样的问题并通过其他方式解决了此问题,请在此处发布您的解决方案。

答案1

进一步的调查让我发现,如果我pulseaudio在启动 Chrome 之前启动,我可以通过连接从电视中听到声音HDMI。奇怪的。

没有任何调整可以.asoundrc解决这个问题,我之前添加过:

defaults.pcm.card 0
defaults.ctl.card 0

为了解决这个问题,但这显然不再有效。

然后我找到了这个文件/usr/share/alsa/alsa.conf.d/99-pulseaudio-default.conf::

# Default to PulseAudio

pcm.!default {
    type pulse
    hint {
        show on
        description "Default ALSA Output (currently PulseAudio Sound Server)"
    }
}

ctl.!default {
    type pulse
}

这看起来很可疑,所以我注释掉了所有行(删除会达到相同的效果)。重新启动我的浏览器,然后现在我的 HTML5 视频中有声音了。这很奇怪,因为你会认为 alsa 会以 my.asoundrc为最高优先级,而我指定 my!default为其他内容(即不是pulseaudio)。但是你现在有了。问题解决了。希望这对其他人有帮助。

答案2

注意:我添加为一个单独的答案,因为这是一种单独的方法,人们会根据解决其具体情况的方法进行投票(我也很好奇哪种解决方案可以为最多的人解决问题。)

我刚刚遇到了另一个问题,试图使用 Chrome 来JACK获得类似 dmix 的行为(即多个进程共享声卡)。如果您使用qjackctl(或其他一些此类 JACK 管理器)并且您以前没有收到声音,或者知道您应该收到声音,则您可能已将 JACK 服务器重命名为“默认”以外的其他名称(或 Chrome 可能期望的任何名称) 。

要解决这个问题:转到qjackctl,单击“设置”,在显示“参数”的地方有一个“名称”下拉列表,选择“(默认)”(或您认为Chrome期望的任何名称),重新启动Chrome并完成。

相关内容