Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在iOS5中自动播放HTML5音频/视频_Javascript_Html_Html5 Video_Html5 Audio - Fatal编程技术网

Javascript 在iOS5中自动播放HTML5音频/视频

Javascript 在iOS5中自动播放HTML5音频/视频,javascript,html,html5-video,html5-audio,Javascript,Html,Html5 Video,Html5 Audio,我有一个HTML5网络应用程序,有声音效果。我正试图让这些效果在iOS5中工作,但我一辈子都做不到 想知道是否有人有办法在iOS5中获得HTML5音频/视频控件的JS控制 甚至可以通过单击来控制多个音频文件。现在,如果我有10个音效,我需要10次用户点击才能控制所有音效,这太荒谬了 Aburb,但你必须从iPhone或任何手机的角度来看待它。它是一款移动电话,通过蜂窝网络传输,带宽有限,这是许多人从最近的Sprint广告中了解到的。他们不希望用户超过他们的带宽限制,因为一些网站在他们自己不采取行

我有一个HTML5网络应用程序,有声音效果。我正试图让这些效果在iOS5中工作,但我一辈子都做不到

想知道是否有人有办法在iOS5中获得HTML5音频/视频控件的JS控制


甚至可以通过单击来控制多个音频文件。现在,如果我有10个音效,我需要10次用户点击才能控制所有音效,这太荒谬了

Aburb,但你必须从iPhone或任何手机的角度来看待它。它是一款移动电话,通过蜂窝网络传输,带宽有限,这是许多人从最近的Sprint广告中了解到的。他们不希望用户超过他们的带宽限制,因为一些网站在他们自己不采取行动的情况下向他们的手机发送大量数据

以下是该官员的摘录,提供了更多细节

用户通过蜂窝网络控制下载

在iOS上的Safari中(适用于所有设备,包括iPad),用户可以 在蜂窝网络上,按数据单元收费,预加载和 自动播放被禁用。在用户启动之前,不会加载任何数据。 这意味着JavaScript play()和load()方法也处于非活动状态 除非play()或load()方法 由用户操作触发。换句话说,用户发起的播放 按钮起作用,但onLoad=“play()”事件不起作用

这将播放电影:

这在iOS上不起任何作用:


你试过这样的东西吗

function clickedOnce(){
  $('audio').each(function(){
      this.play();
  });
}

由于苹果的原因,他们限制了自动播放功能,以防止手机数据收费。在xcode4中,我添加了一个变通方法。在“webViewDidFinishLoad”中,发送一个javascript调用来自动播放视频,它就会工作。我用常规javascript在html文件中尝试了这一点,但没有成功。不过,通过webViewDidFinishLoad实现了这一点。在本例中,我想在index.html页面上自动播放视频。我在该页面上有一个名为startVideo()的javascript函数

下面是我的javascript函数:

<script>
function startVideo(){
var pElement3 = document.getElementById('myVideo');
pElement3.play();
}
</script>

函数startVideo(){
var pElement3=document.getElementById('myVideo');
pElement3.玩();
}
这是html,以防您不熟悉html视频

<video id="myVideo" poster="index_poster.png" width="1024" height="768" xcontrols     autoplay="autoplay">
<source src="flow.m4v" type="video/mp4"/>
browser not supports the video
</video>

浏览器不支持该视频

Apple不允许在iOS上自动播放,据我所知,它必须由用户点击启动,而且一次只能播放一个视频文件,音频文件可能也一样。我可以叠加音轨,很好,我只需要允许每个文件都这样做……正如@andrewh提到的,它是用户激活的,那么,为什么不在你的整个应用程序上覆盖一个透明的div,当用户触摸你时,它会删除并激活你的音频,这样它就是一个用户交互。这更像是一种黑客行为。或者通过应用程序中可能需要单击的任何其他按钮触发音频。不需要覆盖任何内容,我可以捕捉到
document.body
。问题的一部分在于,我每次单击只能激活一个音频文件,因此如果我想控制10个音效,用户需要单击10次。是的:)其中只有一个可以工作。其他人被忽视了。我的代码现在类似于:
var files=$('audio');。。。单击fn(){files.pop().play();}
控制每个文件…是的,我只是能够在Ipad上查看,它只播放一个文件:(你能发布更多的代码吗?我将来可能也需要这个。谢谢,虽然有点晚了,但这意味着没有解决方案?
<video id="myVideo" poster="index_poster.png" width="1024" height="768" xcontrols     autoplay="autoplay">
<source src="flow.m4v" type="video/mp4"/>
browser not supports the video
</video>