解决方式:移动H5应用在iPhone上的音频播放问题(声音与时间同步)
发布时间
阅读量:
阅读量
【最近在开发一个移动H5小游戏的过程中,遇到了音频播放的问题,最终通过反复测试找到了可行的解决办法。项目中需要实现音频播放功能,因此选择了HTML5提供的<audio>标签进行相关操作。在完成代码编写后,经过测试发现,在PC端模拟iPhone以及Android设备上均能正常播放音频,但在实际的iPhone设备上却无法发出声音。为了解决这一问题,查阅了网上的相关资料,了解到可能需要在调用.play()方法之前先执行.load()或.pause()操作,或者将.play()方法放置在touch事件中。然而,在实际测试中这些方法并未奏效。尽管如此,根据相关原理推测其背后的原因应与此类似,于是继续进行了本地的多次尝试与验证。最终确认有效的解决方案是:绑定一个touchstart事件(建议绑定到第一个被点击的元素,并在触发后立即移除该事件监听器;理论上也可以绑定到touchend事件,但需注意只有类似click操作才会触发有效事件,而滑动后触发的touchend则无效),首先调用.load()方法加载音频资源,并在后续其他方法中再调用.play()方法进行播放即可成功发出声音。(注:上述代码中的**()前为audio元素实例;示例代码采用原生ES5语法编写,便于读者快速适配至自身技术架构中)。
解决无声音问题的代码示例:
// 在t
全部评论 (0)
还没有任何评论哟~
