2011-10-21 13 views
4

新しいiPadのMobile Safari iOS 5でHTML5アプリケーションを開発すると、「ディスパッチ」を受信したときにユーザープロンプトが表示されます。 iOS 5でjavascriptイベント経由でサウンドを再生するHTML5アプリ

snd.src = snd.src; 
snd.play(); 

は残念ながら、Appleはサウンドを再生するための方法論を変更:ユーザーへの注意を喚起するために、我々は、アラート機能が呼び出されたときに、このように果たしている音を持っています。これを修正したiOS 5のアップデートがあるかどうか誰かが知っていますか?

* iOS 3の古い「ハック」がもう機能しなくなっていることを多くの研究で確認しました。

答えて

14

サウンドにはiOS5でのユーザー入力が必要です。あなたは、アプリケーションの初期化時に1回押すと消えてしまう「目に見えない」ボタンでサウンドを初期化することができます。一度起動すると、snd.play()をプログラム的に呼び出すことができます。それはうそつきですが、うまくいけばそれが助けになります!

Javascriptを:

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) { 

    document.write('<a id="init" ontouchstart="javascript:sndInit();"></a>'); 

    function sndInit(){ 
    snd.play(); 
    snd.pause(); 
    document.getElementById('init').style.display = 'none'; 
    } 
} 

CSS:

<style> 
    #init { 
     position: absolute; 
     margin-right: 0px; 
     margin-left: 0px; 
     margin-top: 0px; 
     margin-bottom: 0px; 
     z-index: 1000; 
    } 
</style> 

はまた、レミーシャープは、オーディオスプライトHEREでの作業にいくつかのヒントがあります。

+0

jsfiddleでデモを公開しました。まだ動作していません。なぜなら、 'snd.src'はまだ定義されていないからです。この例を適切に動作させる方法はありますか? http://jsfiddle.net/esn8C/ –

+0

この例は、iOSのユーザー入力要件の回避策に過ぎませんでした。私はhttp://www.position-absolute.com/articles/introduction-to-the-html5-audio-tag-javascript-manipulation/をチェックして、javascriptでHTML5オーディオを制御する方法を紹介することをおすすめします。 – Josiah