我发现大量网站和参考资料确认在Android和iOS移动设备上,HTML5视频preload='auto'
标签被故意忽略,浏览器会等待用户手动按下播放按钮。< / p>
有没有办法可以推翻这种行为?
我们的情况是,我们计划让iPad在封闭的内联网WiFi系统上运行,其中蜂窝网络数据收费肯定不会成为问题。我们有视频文件,一旦页面加载,需要自动跳转到特定的播放位置。它在Windows,Linux或MacOS上的Chrome上运行得非常出色,但iOS却没有。
iOS或Android中是否有允许“预加载”的设置?表现得像在其他平台上一样?
或者,我已经在页面上进行了JavaScript和jQuery。是否存在可以说服浏览器预加载视频的电话,即使preload='auto'
没有?
我已在http://www.stuartbruce.co.uk/editreader/javascript_video_test放置测试页以显示会发生什么。在Chrome上,在除iOS之外的所有平台上,视频会自动跳到镜头3.在iOS上,没有任何反应。
Apple在这个问题上的专线在这里: User Control of Downloads Over Cellular Networks 但事实上他们已经称之为“用户控制下载”#34;暗示这是用户可以选择更改的内容。但是,我无法看到任何证据。可能吗?用户或iPad是否可以选择加入&#39;允许preload='auto'
正常工作?
答案 0 :(得分:1)
根据以下更新/信息,您应该可以执行此操作,只要您设置了mute
属性:
video.play();
video.addEventListener('canplay', function() {
this.currentTime = 5;
});
New Policies for iOS文章表明:
默认情况下,WebKit将具有以下策略:
- 元素现在将遵循autoplay属性,对于满足以下条件的元素:
如果元素源媒体不包含音轨,
- 元素将被允许自动播放而无需用户手势。
- 元素也可以在没有用户手势的情况下自动播放。
- 如果元素获得音轨或在没有用户手势的情况下变为静音,则播放将暂停。
- 元素仅在屏幕上可见时开始播放,例如当它们滚动到视口中时,才会生成 通过CSS可见,并插入DOM。
- 如果元素变得不可见,则会暂停,例如滚出视口。
- 元素现在将遵循play()方法,对于满足以下条件的元素:
- 元素将被允许播放()而没有用户手势,如果他们的源媒体不包含音轨,或者他们的静音 property设置为true。
- 如果元素在没有用户手势的情况下获得音轨或变为非静音,则播放将暂停。元素将是 允许在屏幕上或在屏幕外不可见时播放() 视口。
- video.play()将返回Promise,如果不满足任何条件,将拒绝承诺。
- 在iPhone上,现在允许元素内联播放,并且在播放时不会自动进入全屏模式 播放开始。
- 没有playinline属性的元素将继续需要全屏模式才能在iPhone上播放。
- 使用捏合手势退出全屏时,没有playinline的元素将继续以内联方式播放。