看起来移动设备上的chrome已经完全阻止了特定版本的自动播放(66) . 这些视频在以前的版本中自动播放,并且正在开发新版本(67) .
测试:
<video controls autoplay muted src="pathToFile.mp4"></video>
FiddleJS - https://jsfiddle.net/josewirewax/u4128v7s/
测试结果:
-
Video doesn't autoplay on mobiles with Chrome/66.0.3359.158 OnePlus 3 - Mozilla / 5.0(Linux; Android 8.0.0; Build / OPR1.170623.032)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 66.0.3359.158 Mobile Safari / 537.36
-
It autoplays on mobiles with Chrome/67.0.3396.68 Pixel - Mozilla / 5.0(Linux; Android 8.1.0; Pixel Build / OPM4.171019.016.B1)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 67.0.3396.68 Mobile Safari / 537.36
-
无法使用旧版本进行测试
没有用户交互我无法触发play(),否则我收到错误:
Uncaught (in promise) DOMException: play() failed because the user didn't interact with the document first.
我在代码中遗漏了什么吗? Chrome的任何文档或博客文章都在讨论这个问题吗?有没有解决方法?
1 回答
我遇到了同样的问题,这是由移动设备允许的 data saver 引起的,这完全阻止了自动播放 .
关闭数据保护程序后,自动播放设置进入允许状态,视频开始自动播放 .
我还没有找到一种方法可以在启用了数据保护的设备上可靠地自动播放视频,用户需要与文档交互,然后需要调用
.play()
函数 .