现在需求在用户选择了某个按钮后,根据接口判断正确错误,再提示不同的音效
如果在接口返回后再去播放,则无法成功
后来查到播放音乐需要在用户手操作后马上执行才行
所以,就在用户点击后播放音效,再马上暂停,等到接口请求完了之后再播放
可是后来又发现在部分情况下ios12播放暂停再播放,会卡死
所以,再次修改为用户点击后播放,再马上静音,然后再取消静音,ios12的问题解决了
由于一开始不知道用户有没有选对,故会再用户点击的时候将成功、失败、通关的三个音效同时播放再静音;
可是在iphone5 等老旧手机中,会导致多个音效同时播放出来,静音没有静住;
ios9会有上面问题 ios10没有
其他的iphone678xxmax都没问题
故最后的方案是通过判断版本,高于ios12的就用静音,低于ios12的用暂停
JS判断ios系统的版本号
https://blog.csdn.net/qq_24581629/article/details/78875912
var str= navigator.userAgent.toLowerCase();
var ver=str.match(/cpu iphone os (.*?) like mac os/);
if(!ver){
alert("请在Ios系统中打开");
}else{
alert("你当前的Ios系统版本为:"+ver[1].replace(/_/g,"."));
}
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。