2011-11-08 68 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>