次のコードを使用して、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 つだけです。そこで、オーディオ スプライトを作成し、その一部だけを再生します。
- サウンドはクリックまたはタッチスタート イベント ハンドラーでのみロードできます。だから私はクリックイベントハンドラーをロードしています。
しかし、まだ音が出ません。そのボタンを押すと音が聞こえると思います。スプラッシュ画像タイプのボタンです。ユーザーがアプリケーションを使用するために押す必要がある最初のボタンです。
オーディオを正常に再生するにはどうすればよいですか?
ここにいくつかのリソースがあります