可以减少Android上的SoundManager 2延迟?

时间:2014-01-08 17:44:52

标签: android soundmanager2

我已经在我的网页上实现了SoundManager 2,到目前为止,我在所有浏览器中都能很好地运行它。

当我在桌面上进行测试时,点击div并听到播放的声音之间几乎没有延迟。 但是,在Android上,第一次播放声音时总会有大约一秒的延迟。在那之后,几乎没有任何滞后。

是否可以减少或删除Android上第一次播放延迟?

以下是我使用

的代码
$(document).ready(function() {

    soundManager.setup({
        url: 'www.mysite.com/swf/',
        preferFlash: false,
        onready: function() {
            soundManager.setup({
                defaultOptions: {
                    autoLoad: true,
                    autoPlay: false
                }
            });
            soundManager.createSound({
                id: 'mysound',
                url: 'www.mysite.com/sounds/mysound.mp3',
                volume: 50
            });
        }
    });


    $(document).on("click",".wrapper",function(e){
        soundManager.play('mysound');
    }

}

我尝试手动加载声音

    var preload = soundManager.createSound({
        id: 'mysound',
        url: 'www.mysite.com/sounds/mysound.mp3',
        volume: 50
    });
    preload.load();

但这没有任何区别!

有人在Android上没有延迟吗?

1 个答案:

答案 0 :(得分:0)

我认为问题在于android的政策只允许声音响应用户输入而播放。

例如:Autoplay audio on mobile safari

这是移动浏览器的限制。

你有滞后的原因是你第一次点击时必须加载声音。您的预加载不起作用,因为它不响应用户输入而运行,因此被阻止。

解决方案是实现一个欢迎屏幕,在点击“输入”按钮时加载声音,如上面链接的最高评论所述。

如果您只需要在一个浏览器上工作,则可以导航到

chrome://flags/#disable-gesture-requirement-for-media-playback

在Android手机上

,然后点击启用