最近接触一个移动短项目,做摇一摇的功能,然后摇的时候要有声音,摇中奖的时候也有声音,问题来了,iOS 5 不能用代码去触发播放声音,其实 Android 4.0+ 也有一样的问题,因为目前只折腾了 iOS,所以这里就以 iOS Safari 的情况为例,其他应该是类似的,大家可以自己验证。以下的 Safari 都是指 iOS 下的。
iOS Safari 中的 HTML5 媒体元素都是单例的,所以一次只能播放一个 HTML5 音频(和 HTML5 视频)流(估计是为了减少数据费用)。音频文件只能从用户触发的触摸(单击)事件加载,如果在 HTML 标记中使用了 autoplay 属性,那么 Safari 将会忽略这个属性,并且不会在加载页面