
前言
在最新版本的Chrome浏览器(以及所有以Chromium为核心的浏览器)中,不再允许音频和视频自动播放. (某些Google的做法确实使开发人员感到沮丧). 即使您为视频或音频标签设置了自动播放属性,它也不会自动播放.
<视频自动播放> video>
如果您使用javascript代码明确调用play方法:
vdo.oncanplay = function(){
this.play();

};
您将在控制台中看到以下异常: 未捕获(承诺)DOMException.
分析原因
这是因为Chrome仅允许用户在主动触发网页后自动播放音频和视频. 实际上,严格来说,Chrome不允许在用户触发网页之前播放音频,而视频实际上是无限的. 但是由于视频文件还包含音频,因此也被禁止. Chrome的目的是防止开发人员滥用自动播放功能并骚扰用户.
现在您知道原因了,开始寻找解决方案.
一般解决方案

更常见的是将视频标签的静音属性设置为静音,以便可以自动播放视频,但没有声音. 然后,当用户在网页上触发了任何触发器之后,请删除静音功能. 或者让用户手动打开音频(腾讯视频会这样做).
<视频自动播放已静音> video>
document.body.addEventListener('mousedown'chrome浏览器没有声音,function(){
vdo.muted = false;
},否);
但是用户体验毕竟不是很好. 接下来,介绍一种非常规方法.

hack方法
尽管Chrome浏览器对视频标签和音频标签有非常严格的限制,但并没有限制其他也可以播放音频和视频的iframe标签. 那么我们可以使用iframe触发权限吗?
ifm.onload = function(){
vdo.src ='YOUR_VIDEO_URL';

vdo.oncanplay = function(){
vdo.play();
};
};
将iframe的src属性指向音频文件以使其播放音频. 为了给用户带来更好的体验,该音频文件最好是一个空的音频文件chrome浏览器没有声音,即没有音频内容的文件,且持续时间尽可能短,例如500ms.
iframe播放此音频文件时,可以触发在网页上播放音频的权限,这样,如果再次播放视频或音频,就不会出现问题.
查看链接:
Chrome 66自动播放策略更改
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-242764-1.html
不想更新
捍卫国家尊严