【发布时间】:2019-11-11 09:55:55
【问题描述】:
当页面加载时,我希望音频文件自动播放。它工作过一次,但是当我刷新时,我得到了“play() 失败,因为用户没有先与文档交互”错误。当我更改一些代码时,它再次工作,但刷新后我一直收到错误。
我已经尝试过模拟一次点击,正如我上面所说的,它工作了一次。
这是我现在的代码:
$(".header-bg").click();
console.log("clicked");
$(document).ready(function() {
console.log("loaded");
$('#medieval-music')[0].play();
});
两个控制台日志被记录,但音乐没有播放。
【问题讨论】:
-
大多数浏览器都有自动播放阻止功能 - see here for some more info。让音频自动播放从根本上说是反用户的——很多人觉得它很烦人,它会消耗额外的带宽,而且它可能会在不适当的时刻突然播放意想不到的噪音。请不要试图对您的用户造成这种影响,他们不会感谢您的。如果他们愿意,请允许他们播放音频。无论如何,由于上述阻塞功能,您无法保证它始终有效。
-
我明白这一点,但是 - 这是一个学校项目的游戏,这就是我想要播放音乐的原因。
-
好的,但是浏览器不知道也不关心这些情况。老实说,我不明白为什么这是一个问题?一旦用户同意开始游戏,就让音乐播放。
-
更多关于自动屏蔽的信息:developers.google.com/web/updates/2017/09/…
标签: javascript jquery audio autoplay domexception