2011-11-08 25 views
4

私は効果音を持つHTML5ウェブアプリケーションを持っています。私はこれらの効果をiOS5で働かせようとしており、私の人生ではできません。iOS5の自動再生HTML5オーディオ/ビデオ

誰かがiOS5のHTML5オーディオ/ビデオコントロールのJSコントロールを取得するための回避策があるのか​​不思議です。

また、ワンクリックで複数のオーディオファイルを制御することもできます。現在のところ、10のサウンドエフェクトがある場合は、すべてのコントロールを得るために10ユーザーのクリックが必要です。ばかばかしい

+1

あなたがhtmlのビデオに新しいしている場合は、HTMLです私は知っている、それはユーザーのクリックによって開始されなければならない、またあなたは一度に1つのファイルを再生することができますビデオとおそらく同じオーディオのため – ryuutatsuo

+0

私はオーケーサウンドトラックをちょうどいい、私はそれぞれのOそうするには... –

+0

@andrewhはユーザーがアクティブであると述べたのと同じように、アプリケーション全体に透明な部分をオーバーレイしないと、ユーザーがオーディオを削除してアクティブにするときにユーザーのやりとりだったのです。これはもっとハックです。 – ryuutatsuo

答えて

7

困ったけど、iPhoneや携帯電話の視点から見る必要があります。これは、帯域幅の制限があるセルラーネットワークを経由する携帯電話であり、多くの人々が最近のSprintの商業から知っている。彼らは、帯域幅の限界を超えてユーザーが望むことはありません。なぜなら、サイトによっては、自分自身で行動を起こさずに大量のデータを送信しているからです。

以下は、公式Safari Developer Libraryの抜粋です。

ユーザが セルラーネットワーク上にあってもよいし、データユニット、予圧と ごとに課金され(アプリを含むすべてのデバイスのための)iOSのSafariのセルラーネットワークを介してダウンロード

のユーザーコントロール、自動再生が無効になります。ユーザーが開始するまでデータはロードされません。 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

は、あなたがこのような何かを試してみました?

+0

yep :)そのうちの1つだけが動作します。他は無視されます。私のコードは次のようになりました: 'var files = $( 'audio'); ... clickFn(){files.pop()。play(); } '各ファイルのコントロールを取得するには... –

+0

私はちょうどIpadをチェックすることができました、それは1つを再生します:( – 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> 

そして、ここでは、Appleは限りがあるのiOSの上で自動再生を許可していません

<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> 
関連する問題