Chrome上的音频有时候不起作用

时间:2018-05-15 06:44:09

标签: javascript html5 html5-audio

playSound : function() {
      var audio = new Audio(audio.mp3);
      audio.play();
 }

我使用上面的代码来播放音频。但我面临以下两个问题:

  1. 声音永远不会播放,直到我点击选项卡(为此我转到另一个选项卡,然后单击当前选项卡)。在播放声音之前似乎需要一个事件。
  2. 有时候我得到异常并且音频从不播放&#34;未捕获(在承诺中)DOMException:play()失败,因为 用户没有先与文档交互 < /强>&#34;
  3. 我不想搞乱HTML元素。

1 个答案:

答案 0 :(得分:0)

您可能会看到Chrome发布的网站上自动播放媒体的政策变更:https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

从本质上讲,该政策规定,除非用户在您的媒体上进行互动,而您的处理程序*不会同步启动媒体,否则无法播放

同步注意这个词 - 你甚至不能使用setTimeout或其他类似的东西。这是为了保护用户免受垃圾广告等的攻击。其他浏览器也将此作为设置,但它们可能并且可能默认启用此功能,因此您最好为此做好准备。

[*] - (例如点击处理程序)