1

次のコードを使用して、iPad Safari にサウンドをロードしています。

    var EI={sound:{}};
    EI.sound.load = function(){
        var preferFlash = true;
        if (Ext.os.is('iOS') && Ext.browser.is('WebKit'))
            preferFlash = false;
        // Load sound modules
        soundManager.setup({
            debugMode: true,
            preferFlash: false,
            onready: function(){
                var s = EI.sound; 
                s.audio = soundManager.createSound({
                    id: 'audio',
                    url: 'sound/sprite.mp3'
                });
                var opt = s.opt.online, f = opt.start+opt.duration, t=f+1500;
                if (s.enabled)  s.audio.play({from:opt.start, to:opt.start+opt.duration});
            }
        });
    }

オプトは次のように定義されます。

EI.sound.opt = {
    "msg":{start: 53, duration: 701},
    "offline":{start: 1904, duration: 487},
    "online":{start: 3548, duration: 2476},
}

ボタンのclickイベント ハンドラーは次のようになります。

handler: function(btn){
    EI.sound.load();
}

問題は、ボタンをクリックしても音が再生されないことです。Mobile Safari では html5 オーディオに制限があることは承知しています。これらは、私がそれを克服するために取ったステップです。

  1. ロードできるファイルは 1 つだけです。そこで、オーディオ スプライトを作成し、その一部だけを再生します。
  2. サウンドはクリックまたはタッチスタート イベント ハンドラーでのみロードできます。だから私はクリックイベントハンドラーをロードしています。

しかし、まだ音が出ません。そのボタンを押すと音が聞こえると思います。スプラッシュ画像タイプのボタンです。ユーザーがアプリケーションを使用するために押す必要がある最初のボタンです。

オーディオを正常に再生するにはどうすればよいですか?

ここにいくつかのリソースがあります

  1. http://www.ibm.com/developerworks/library/wa-ioshtml5/index.html
  2. iPhone の SoundManager2 - jQuery Load でサウンドが再生されない
4

1 に答える 1