Uncaught (in promise) DOMException: play() failed because the user didn‘t interact

解决因为浏览器限制不能自动播放音频视频的缺陷,最主要还是因为需求不然谁闲着饶这么大的弯子去这么搞,废话不多说了。

有两种解决方案,严格来说是一种,先说第一种

1.

 

 

*注意该方案只适用于本地调试

2.为video标签设置muted属性,使它静音,这样视频就能自动播放了,但是没有声音。然后待用户在网页上有了任意触发后,再将muted去掉。或者让用户手动去打开音频(腾讯视频就是这样做的)。

<video muted></video>

document.body.addEventListener('mousedown', function(){ videoDom.muted = false; }, false); 

 <video></video>
<iframe id="iframeDom" allow="autoplay" style="display:none" src="一个空的音频文件"></iframe>

 

const videoDom = document.getElementById('videoDom');
const iframeDom = document.getElementById('iframeDom');

iframeDom.onload = function(){
    videoDom.src = 'YOUR_VIDEO_URL';
    videoDom.oncanplay = function(){
        videoDom.play();
    };
};
 

iframesrc属性指向一个音频文件,使它播放音频。为了给用户比较好的体验,这个音频文件最好是一个空的音频文件,即没有音频内容的文件,时长也尽可能短一点,比如500ms

iframe播放了这个音频文件后,就能触发网页播放音频的权限,这样再来播放视频或音频,就没有问题了。

 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值