移动端audio使用的一个注意事项

这几天做移动端的音乐播放,果然是踩坑不断呀!

其中一个就是,做好的播放功能,在pc上可用,在手机上的壳子浏览器可用,可偏偏在原生浏览器和chrome上不行。

折腾了好久(主要还是移动端的调试真心不方便呀),最终定位到问题是:

  移动端一个audio对象的第一次播放,必须是一个用户触发的行为。

至少在我目前4.3的三星s4的原生浏览器和chrome31上是这样的,相信在以后的版本上也会是这样。

所以对于异步获取播放的资源链接再进行播放的实现,在这两个浏览器上就会失效。

解决方法:

既然不能异步,最简单的方法就是换成同步呗。当然,这对于项目来说是不现实的……

上面提到,这个限制对于同一个audio对象,只在其初次播放时需要用户行为触发,之后就可以随心所欲的操作了。

所以我所用的方法就是:

全局使用同一个audio对象,并且在用户第一次点播放的时候,在同步阶段,用一个空的音乐(没有声音,播放时长1s)先进行播放,等获取到异步结果后再进行src的替换就行了。

posted @ 2013-12-08 13:20  snadn  阅读(2535)  评论(2编辑  收藏  举报