【问题标题】:HTML5 audio tag not playing sound for the very first of unfocused tab in chrome and safari?HTML5音频标签没有为chrome和safari中第一个未聚焦的标签播放声音?
【发布时间】:2016-08-02 10:21:46
【问题描述】:

只要标签页在浏览器中可用,无论焦点如何,我都想在我的应用程序中播放声音。我正在使用 HTML 5 音频标签来播放声音。但是 chrome 和 safari 会推迟音频播放,直到用户导航或聚焦到选项卡。播放声音的整个音频请求在选项卡焦点时播放。当您一次听到很多声音时,它变得太吵了。是否可以在没有浏览器延迟性质的情况下从未聚焦的选项卡播放声音?建议我任何可用于处理这种情况的替代解决方案。提前致谢。

【问题讨论】:

  • 所以你想要的只是一个音频标签,即使你在另一个标签上也能播放?

标签: javascript html google-chrome audio html5-audio


【解决方案1】:

这是自 Chrome 46 以来的预期行为。为了优化浏览器性能并节省电量,Google 已禁用后台标签的自动播放。然而,从 Chrome 47 开始,人们可以通过 启用 Chrome 标志

来覆盖它

chrome://flags/#disable-gesture-requirement-for-media-playback

更新:Chrome 标志自 Chrome 60 起不再可用(谢谢@gordie)

没有允许声音在“背景”选项卡中播放的解决方法。解决方案是在页面聚焦之前不播放任何声音。为此,您可以使用 window.onfocus 事件处理程序,或者最好使用 Visibility API (more info)。

【讨论】:

  • 嗨!感谢您提供此信息。但是 Soundcloud 设法做到了,所以应该有一个解决方法?
  • 我刚刚在 Chrome 上测试了 SoundCloud。它似乎没有自动播放。例如,如果您在新标签 w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/… 中打开此链接 [嵌入式 SoundCloud 播放器](右键单击 -> 在新标签中打开链接),则它不会自动播放,直到您聚焦该标签。
  • 可能有两种“hacks”:1)如果打开了多个标签,请使用至少聚焦一次的标签来播放声音 2)当标签第一次聚焦时,使用音频 API 播放一些无声的剪辑。这样,当时间到了,您就可以开始播放,而不必等待人们将焦点放在标签上。
  • 您好 Xeos,感谢您的回复。是的,它适用于 Soundcloud,例如检查。 soundcloud.com/chin1993/likes - 关于你的两个黑客,你能解释一下吗?谢谢!
  • 此标志不再存在(此处为 chrome 60)
猜你喜欢
  • 1970-01-01
  • 2016-06-17
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 2017-09-20
  • 1970-01-01
  • 2014-11-16
  • 2019-03-11
相关资源
最近更新 更多