【问题标题】:Getting "play() failed because the user didn't interact with the document first" error when trying to play sound (javascript/html)尝试播放声音时出现“播放()失败,因为用户没有先与文档交互”错误(javascript/html)
【发布时间】:2020-03-09 18:40:22
【问题描述】:

我正在尝试使用 javascript 在网页上播放声音,但每当我这样做时,都会出现上述错误。这是我的代码:

if (thing.startsWith("0")) {
    var a = new Audio("audio.mp4");
    a.play();
}

此外,如果您打开控制台,声音会自动开始播放。

【问题讨论】:

标签: javascript html


【解决方案1】:

这是因为 Google 更新了其自动播放政策,因此用户必须先与播放声音的窗口进行一些交互,例如“开始”按钮,然后您才能播放声音。发生这种情况是因为对于许多用户来说,突然播放声音很烦人。

【讨论】:

  • 我知道这是一篇旧帖子,但有趣的是 Youtube 归 Google 所有,但至今仍不遵守该政策。
  • @avisk,YouTube 使用的技术已知吗?有些人可能会尝试亲自调查,但可能已经共享。
  • "一些交互" 但是没有列表说明这是什么意思,滚动不算数,也没有确认警报,似乎只有点击?
【解决方案2】:
var resp = audio.play();

if (resp!== undefined) {
    resp.then(_ => {
        // autoplay starts!
    }).catch(error => {
       //show error
    });
}

这段代码帮助我删除了控制台的警告

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    相关资源
    最近更新 更多