可以减少 Android 上的 SoundManager 2 延迟吗?
Posted
技术标签:
【中文标题】可以减少 Android 上的 SoundManager 2 延迟吗?【英文标题】:Possible to reduce SoundManager 2 lag on Android? 【发布时间】:2014-01-08 17:44:52 【问题描述】:我已经在我的网页上实现了 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】:我认为问题与 android 的政策有关,即只允许声音播放以响应用户输入。
例如:Autoplay audio on mobile safari
这是移动浏览器的限制。
您延迟的原因是您第一次点击时必须加载声音。您的预加载不起作用,因为它不是响应用户输入而运行的,因此被阻止。
一种解决方案是实现一个欢迎屏幕,在点击“输入”按钮时加载声音,如上述链接的顶部评论所述。
如果你只需要它在一个浏览器上工作,你可以导航到
chrome://flags/#disable-gesture-requirement-for-media-playback
在您的安卓手机上并点击启用
【讨论】:
以上是关于可以减少 Android 上的 SoundManager 2 延迟吗?的主要内容,如果未能解决你的问题,请参考以下文章