我已经在我的网页上实现了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上没有延迟吗?
答案 0 :(得分:0)
我认为问题在于android的政策只允许声音响应用户输入而播放。
例如:Autoplay audio on mobile safari
这是移动浏览器的限制。
你有滞后的原因是你第一次点击时必须加载声音。您的预加载不起作用,因为它不响应用户输入而运行,因此被阻止。
解决方案是实现一个欢迎屏幕,在点击“输入”按钮时加载声音,如上面链接的最高评论所述。
如果您只需要在一个浏览器上工作,则可以导航到
chrome://flags/#disable-gesture-requirement-for-media-playback
,然后点击启用