小编典典

可以在iPad上自动播放HTML5视频吗?

html

<video>标签autoplay="autoplay"属性的作品在Safari罚款。

在iPad上进行测试时,必须手动激活视频。

我认为这是一个加载问题,所以我循环检查了媒体的状态:

videoPlay: function(){
    var me = this;
    console.log('STATE: ' + $("#periscopevideo").get(0).readyState);
    if ($("#periscopevideo").get(0).readyState != 4){
      setTimeout(function(){me.videoPlay();}, 300);
    }
    else {
      $("#periscopevideo").get(0).play();
    }
}

该状态仍在0iPad上。在我的桌面野生动物园中,它会通过01最后4。在iPad上,只有4在我手动点击“播放”箭头时才能到达。

此外,$("#periscopevideo").get(0).play()通过点击呼叫onClick也可以。

苹果在自动播放方面是否有任何限制?(顺便说一下,我正在运行iOS 5+)。


阅读 1247

收藏
2020-05-10

共1个答案

小编典典

iOS 10更新

自iOS 10起,自动播放的禁令已取消-但存在一些限制(例如,如果没有音轨,则可以自动播放A)。

iOS 9及更低版本

从iOS 6.1开始, 不再可以在iPad上自动播放视频。

我对他们为什么禁用自动播放功能的假设?

好吧,由于许多设备所有者在其设备上都有数据使用量/带宽限制,我认为苹果公司认为用户自己应该决定何时启动带宽使用量。


经过一些研究,我在Apple文档中找到了以下有关iOS设备上自动播放的摘录,以确认我的假设:

“苹果已经决定通过脚本和属性实现来禁用在iOS设备上自动播放视频。

在Safari中,在iOS上(对于包括iPad在内的所有设备),用户可能位于蜂窝网络上,并且按数据单元收费,因此将禁用预加载和自动播放功能。
在用户启动数据之前,不会加载任何数据。
-Apple文档。

这是“ SafariHTML5参考”页面上的一个单独警告,说明为什么无法在iOS的Safari中播放嵌入式媒体:

警告 :为防止用户自费地通过蜂窝网络进行下载,嵌入式媒体不能在iOS的Safari中自动播放
用户始终启动播放。启动播放后,iPhone或iPodtouch上会自动提供一个控制器,但对于iPad,您必须设置controls属性或使用JavaScript提供一个控制器。


这意味着(就代码而言)是 除非 用户操作(例如,单击事件)触发了或方法, 否则 在用户启动播放之前,JavaScriptplay()load()方法是不活动的。 __play()``load()

基本上,用户启动的播放按钮有效,但onLoad="play()"事件无效。

例如,这将播放电影:

<input type="button" value="Play" onclick="document.myMovie.play()">

而以下内容在iOS上什么也不做:

<body onload="document.myMovie.play()">
2020-05-10