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});
            }
        });
    }

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 音频有限制。这些是我为克服它而采取的步骤。

  1. 只能加载一个文件。所以我制作了一个音频精灵并只播放其中的一部分。
  2. 声音只能在 click 或 touchstart 甚至处理程序上加载。所以我正在加载点击事件处理程序。

但是还是没有声音。当我按下那个按钮时,我希望听到声音。它是一个启动图像类型按钮。它是用户必须按下才能使用应用程序的第一个按钮。

如何使音频播放成功?

这里有一些资源

  1. http://www.ibm.com/developerworks/library/wa-ioshtml5/index.html
  2. iPhone 上的 SoundManager2 - 在 jQuery Load 上没有播放声音
4

1 回答 1

0

您正在使用“EI.sound.load()”,而您必须在声音管理器设置中使用“EI.sound.play()”或 autplay: true。

于 2014-10-28T12:53:21.160 回答