chrome66 禁止自动播放后,有什么比较好的方法实现audio的自动播放吗?

1、在chrome 66之后,仅仅给audio标签设置autoplay="true",并不能实现自动播放的效果,有什么好方法实现自动播放吗?
2、我在自己尝试中发现,如果在检测完不允许自动播放后,alert提示手动点击,反而会自动播放,这是什么原因?

var audio = document.getElementById("audio");
var audioPlay = audio.play();
audioPlay.then(function () {
    console.log('可以自动播放');
}).catch(function (err) {
    console.log(err);
    console.log("不允许自动播放");
    alert("请手动点击播放")
})
阅读 12.4k
2 个回答

1.移动端浏览器的话(safari mobile, chrome mobile), 都是不能autoplay的,用户必须与界面进行一次交互后才能play, 这是浏览器的相关策略导致的;所以, 在移动端为了实现自动播放,我都会在初始化界面时,弹一个Modal, 让用户点击一下,执行audio.play, 然后立即audio.stop...这样有了一次人机交互后,就能用JS控制audio的播放和停止了...
chrome66之后,谷歌在桌面端也禁止了autoplay, 所以你可以参考以前移动端浏览器是如何处理autoplay问题的
2.弹了alert,你点击后,就有了一次交互,所以自然就可以play了

推荐问题
宣传栏