12月08, 2013

[小Tip]移动端audio使用的一个注意事项

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

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

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

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

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

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

解决方法:

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

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

所以我所用的方法就是:

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

原文参见: http://snadn.cnblogs.com/snadn/p/3463758.html

本文链接:https://75team.com/post/小tip移动端audio使用的一个注意事项.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。