我正在构建一个网络应用程序,它涉及在新订单进入应用程序时播放声音。在桌面上,一切正常。
但是,在iOS上,音频根本不播放。经过一些investigation我发现iOS在播放音频方面存在局限性。
有没有办法让用户允许以编程方式播放音频?
答案 0 :(得分:0)
是的,这是真的!用户请求之前没有音频缓冲区。 使用一些弹出窗口或任何适合眼睛的动画来吸引用户点击。 你初始播放,同时下一个代码行暂停,你将初始化缓冲,之后你可以编程播放音频。
在我的记忆中... android和iOS没有相同的行为,它是关于我们可以通过这个技巧(单击或触摸)启动缓冲区的最大音频数量。你需要测试它。
如果您希望同一音频在同一时间播放更多次: 最好使用相同的源创建更多的音频html标签。我是js的粉丝,但这次最好以html格式制作html音频标签。
var EXE_JUST_ONE_TIME = false;
document.addEventListener("touchstart" , function(e) {
if (EXE_JUST_ONE_TIME == false){
EXE_JUST_ONE_TIME = true;
document.getElementById("LaserShot").play(); // need for play pause just for buffering start
document.getElementById("LaserShot").pause();
// now you can play programmability from js
document.getElementById("LaserShot_CLONE").play();
document.getElementById("LaserShot_CLONE").pause();
}
else if(EXE_JUST_ONE_TIME = true){
document.getElementById("MakeReadyotherAudio1").play();
document.getElementById("MakeReadyotherAudio1").pause();
EXE_JUST_ONE_TIME = 'NOMORE'
}
}