我正在使用以下代码在 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});
}
});
}
opt定义为
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 音频有限制。这些是我为克服它而采取的步骤。
- 只能加载一个文件。所以我制作了一个音频精灵并只播放其中的一部分。
- 声音只能在 click 或 touchstart 甚至处理程序上加载。所以我正在加载点击事件处理程序。
但是还是没有声音。当我按下那个按钮时,我希望听到声音。它是一个启动图像类型按钮。它是用户必须按下才能使用应用程序的第一个按钮。
如何使音频播放成功?
这里有一些资源