在移动设备上使用Chrome浏览器强制视频自动播放
Force Video Autoplay Using Chrome Browser on mobile devices
在使用移动设备时,视频自动播放不能在Chrome上工作,但可以在Firefox上工作;歌剧。(由于我没有iOS设备,所以不确定Safari的情况如何)。
选项1:使用视频标签:
html代码:<video autoplay loop poster="images/bg.jpg" id="video_bg">
<source src="video.webm" type="video/webm">
<source src="video.mp4" type="video/mp4">
</video>
css代码:
video#video_bg {
position: fixed; right: 0; bottom: 0;
min-width: 100%; min-height: 100%;
width: auto; height: auto; z-index: -100;
background: url(../images/bg.jpg) no-repeat;
background-size: cover;
}
选项2:使用带有自动播放设置的YouTube嵌入视频代码:(同样,适用于桌面但不适用于移动设备)
html代码:<iframe src="http://www.youtube.com/embed/xzvScRnF6MU?autoplay=1" width="960" height="447" frameborder="0" allowfullscreen></iframe>
我的问题:
是否有任何javascript代码,将强制自动播放Chrome浏览器,而在移动设备上查看页面?还有其他建议吗?谢谢你!
不完全是。出于同样的原因,移动Safari和Chrome忽略audio
和video
标签的autoplay
和preload
属性,它们也将不尊重play()
或load()
方法-或任何会导致网络上数据活动的方法-除非它们在用户交互回调处理程序中直接调用。其原因是为了防止蜂窝数据用户潜在的昂贵数据费用。更多信息见Apple文档。
阅读克服iOS HTML5音频限制-一篇很棒的文章,解释了你的确切情况,并提供了示例解决方案。
我过去使用的一种方法是将一个有效的"用户交互"事件(如onmousedown
、onmouseup
、onclick
和ontouchstart
)放在高级元素上,并在其回调中初始化数据加载。作为一个示例,您可以在body
上放置一个ontouchstart
事件——当用户在页面上执行任何操作时都会触发该事件——以确保数据尽早开始加载。
var body = document.getElementById('body');
var audio = document.getElementById('audio');
var loadData = function () {
audio.load();
};
body.addEventListener('ontouchstart', loadData, false);
但是最好的解决方案实际上取决于你的用例。始终考虑音频精灵,并使用WebAudio框架,如HolwerJS,可以真正简化你的生活!
相关文章:
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 强制浏览器更新缓存的HTML5视频对象
- 通过socket.io从浏览器流式传输视频
- WebRTC-是否可以将浏览器代理视频从源发送到接收器
- 如何检测浏览器并根据浏览器显示视频
- 使用iOS Safari网络浏览器的全屏html5视频
- 如何从浏览器隐藏视频src属性's检查元素
- 以类似视频的方式在浏览器中渲染多个图像
- 如何停止html5视频时关闭其内联弹出窗口,跨浏览器
- 浏览器同步摄像头加速视频播放不是一个功能
- 如何在没有safari的情况下为浏览器隐藏视频元素
- 创建视频播放器(Quicktime浏览器插件)React元素,输出缺少的视频属性
- 强制浏览器从第三方网站下载视频
- 所有浏览器的正确网站视频嵌入
- 在安卓设备中,我们如何在上传之前通过浏览器压缩视频
- 通过 WebSocket 将视频文件发送到浏览器
- 无法在浏览器中播放MP4视频
- 关闭浏览器控制台中的视频.js警告
- 检测浏览器视频播放器中广告的网络调用
- 在运行时播放多个视频并更改源,而无需等待浏览器/视频缓冲区