SeB*_*eBa 54 video html5 webkit autoplay ios
我有一些奇怪的问题.我尝试创建一个带有循环背景视频的网站.代码看起来像这样:
<video src="video/bg.mp4" style="z-index: -1;object-fit: cover;" poster="video/bg.jpg" autobuffer autoplay loop muted></video>Run Code Online (Sandbox Code Playgroud)
这在大多数浏览器上运行得非常好(IE很难用这个适合对象的东西,但我不介意),但在iPhone上,视频不会自动播放,但在iPad上却可以.我已经阅读了iOS的新政策,我认为我符合要求(否则iPad不会自动播放).我做了一些其他测试:
我做错了还是iPhone根本不会自动播放视频而且总是需要互动?我只关心iOS 10,我知道iOS 9的要求不同
Pet*_*nce 125
是否playsinline属性的帮助?
这就是我所拥有的:
<video autoplay loop muted playsinline class="video-background ">
<source src="videos/intro-video3.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
请参阅playsinline此处的评论:https://webkit.org/blog/6784/new-video-policies-for-ios/
Dil*_*ani 35
iOs 10+允许视频自动播放内联.但你必须关闭iPhone上的"低功耗模式".
小智 11
这是克服网站中视频自动播放的所有困难的小技巧:
注意:除非用户与设备交互,否则某些浏览器不允许视频自动播放。
因此,检查视频是否正在播放的脚本是:
Object.defineProperty(HTMLMediaElement.prototype, 'playing', {
get: function () {
return !!(this.currentTime > 0 && !this.paused && !this.ended && this.readyState > 2);
}});
Run Code Online (Sandbox Code Playgroud)
然后您可以通过将事件侦听器附加到正文来简单地自动播放视频:
$('body').on('click touchstart', function () {
const videoElement = document.getElementById('home_video');
if (videoElement.playing) {
// video is already playing so do nothing
}
else {
// video is not playing
// so play video now
videoElement.play();
}
});
Run Code Online (Sandbox Code Playgroud)
注意:autoplay属性是非常基本的,除了这些脚本之外,还需要将其添加到视频标签中。
您可以在此链接中查看带有代码的工作示例:
如何在设备处于低功耗模式/数据保存模式/Safari 浏览器问题时自动播放视频
我遇到了类似的问题,并尝试了多种解决方案。我通过考虑两个因素解决了这个问题。
dangerouslySetInnerHtml嵌入<video>代码。例如:<div dangerouslySetInnerHTML={{ __html: `
<video class="video-js" playsinline autoplay loop muted>
<source src="../video_path.mp4" type="video/mp4"/>
</video>`}}
/>
Run Code Online (Sandbox Code Playgroud)
另外,感谢@boltcoder的指导:Autoplay muted HTML5 video using React on mobile (Safari / iOS 10+)
| 归档时间: |
|
| 查看次数: |
62062 次 |
| 最近记录: |