2011-11-08 67 views
4

我有一个具有音效的HTML5网络应用程序。我试图让这些效果在iOS5中工作,并且不能用于我的生活。在iOS5中自动播放HTML5音频/视频

想知道是否有人有任何解决方法来获取iOS5中的HTML5音频/视频控件的JS控件。

甚至可以通过单击来控制多个音频文件。就目前来看,如果我有10种音效,我需要10次用户点击来控制它们,这是荒谬

+1

苹果不允许在那里的iOS的自动播放就我知道,它必须由用户点击启动,也一次只能播放一个文件用于播放视频并且音频可能相同 – ryuutatsuo

+0

我可以覆盖音轨,但我只需要为每个o ne这么做... –

+0

就像@andrewh提到它是用户激活的那样,为什么你不在你的整个应用上覆盖一个透明的div,当用户触摸你的时候删除并激活你的音频,这种方式就是用户交互。这更像是一种黑客行为。或者通过您应用中可能具有的任何其他按钮来触发音频,这需要点击 – ryuutatsuo

回答

7

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

以下是官方Safari Developer Library的摘录,其中有更多详细信息。下载蜂窝网络

在Safari的iOS上

用户控制(对于所有设备,包括ipad公司),其中用户可以 是蜂窝网络上,并且每个数据单元,预紧和 被充电自动播放功能被禁用。直到用户启动它才会加载数据。 这意味着除非用户操作触发play()或load()方法,否则在用户启动播放之前,JavaScript play()和load()方法也处于非活动状态。 。换句话说,用户启动的Play按钮有效,但onLoad =“play()”事件不会。

此播放电影:<input type="button" value="Play" onClick="document.myMovie.play()">

这确实在iOS什么:<body onLoad="document.myMovie.play()">

+0

有点迟来,但这意味着没有解决方案? – dragonx

+0

+1说'Absurb' – dopatraman

0

你有没有尝试过这样的事情?

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

是的:)只有其中一个作品。其他人被忽略。我的代码现在是这样的:'var files = $('audio'); ... clickFn(){files.pop()。play(); }'控制每个文件... –

+0

是的,我只是能够检查Ipad,它只能播放一个:( – ryuutatsuo

+0

你可以发布更多的代码,我可能需要这个在未来以及。 – ryuutatsuo

6

由于苹果,他们限制了自动播放功能,以防止手机数据收费。在xcode4中,我添加了一个解决方法。在你的“webViewDidFinishLoad”发送一个JavaScript调用来自动播放视频,它的工作原理。我用普通的javascript在html文件中试过这个,但没有奏效。尽管通过webViewDidFinishLoad做到了这一点。在这个例子中,我想自动播放我的index.html页面上的视频。我在该页面上有一个名为startVideo()的JavaScript函数。

- (void)webViewDidFinishLoad:(UIWebView *)webView{ 
    NSURLRequest* request = [webView request]; 
    NSString *page = [request.URL lastPathComponent]; 
    if ([page isEqualToString:@"index.html"]){ 
     NSString *js = @"startVideo();"; 
     [myWebMain stringByEvaluatingJavaScriptFromString:js]; 
    } 
} 

这是我的javascript函数:

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

下面是如果你是新的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>