如何避免声音管理器2中的声音延迟

时间:2012-08-16 09:12:28

标签: javascript audio soundmanager2

我正在使用声音管理器2为我的网站发声。

我的js代码是:

function makesound(val) {
            soundManager.useHighPerformance = true;
            soundManager.useFastPolling = true;


            soundManager.setup({

                url: 'folder/sound',
                onclick: function() {
                    var mySound = soundManager.createSound({
                        id: 'aSound',
                        url: 'folder/sound/'+val
                    });
                    mySound.play();
                },
            });
        }

发出声音。但问题是声音有延迟..

如何避免这个问题?

有人能帮助我吗?

2 个答案:

答案 0 :(得分:1)

您可以在soundManager onload事件触发时创建声音对象,并确保在声音对象上将autoLoad设置为true。

soundManager.onload(function(){
    var sounds = [];
    var sound1 = soundManager.createSound({
        id: 'aSound',
        url: 'folder/sound/audio.mp3',
        autoLoad: true,
    });
    sounds.push(sound1);

    document.getElementById("playButton").addEventListener('click', function(e){
        e.preventDefault();
        sounds[0].play();
    }, false);

});

答案 1 :(得分:0)

尝试在页面加载时调用createSound函数,而不是在单击处理程序中调用。这将使声音文件能够加载一次,并且在它需要之前加载。目前,您在每次点击时(或至少在第一次点击时)重新加载声音文件,并且在播放之前需要时间下载。