首页 > 代码库 > 苹果机无法播放声音Audio

苹果机无法播放声音Audio

今天同事测试活动的时候,背景音效(多个)苹果机无法发出声音,几个手机都试过,没什么用。不过安卓机上倒是没这个问题,正常。

最开始以为是js冲突问题,将页面上所有的东西进行加处理(清空,一个个加进来),为了测试方便,在页面上加了个按钮,进行点击播放。

加到最后,都没有什么问题。

突然想到之前百度查找答案的一个说法:需要触摸触发。反正大概就是必须是人为去触发,而不是我们js进行调用click事件。

如此,我们就在原有页面上增加了一个按钮,当点击时,声音出来了。

到这一步,声音播放问题解决。

下一步就是解决初始的时候,点击时放出的声音。至于原先的按钮操作就由页面本身的一个开始按钮进行,幸亏页面最开始还有个开始按钮,要不然,这触发问题还得继续想(最外面加个蒙版,然后用户一点击,就触发,然后去除蒙版,或者将点击事件至于其他会点击的按钮处)。

audio有个属性是volume,用来控制音量的,1.0是最高的,0.0是静音。只是这个值,不能<audio volume="0.0" id="test">这么写。而是需要使用js进行设置document.getElementById("test").volume=0.0才行。而js初始设置,对于苹果机来说,最开始也是无效的,安卓倒是没事。

既然不能volume着手,只能换一个方式了。

突然想到,如果开始的时候play(),马上就parse(),我们人应该是捕捉不到的。就让同事去试了。

结果是成功。

所以暂时解决方式就是,点击开始按钮的时候,立马调用几个audio的play()方法,然后马上parse()。

苹果机无法播放声音Audio