微信小程序开发记录--innerAudioContext

zwz

发布于 2018.08.06 15:26 阅读 3268 评论 0

一下问题除特殊说明以外,均只测试了android平台

小程序播放音频共有两个API: innerAudioContext 和 backgroundAudioManager, 两者相似,但是用法差别较大, 可根据其特性选择使用,此处对innerAudioContext进行总结

# 特性:

- 非全局唯一

每生成一个innerAudioContext,  其事件和属性唯一, 不和其它innerAudioContext共用

- 不自动销毁

innerAudioContext不会自动销毁,跳转页面(包括页面卸载)之后, 如果不手动销毁, 播放和事件仍然会运行

- 可同时播放(如果要使用,需测试IOS)

第一个innerAudioContext播放之后,执行第二个innerAudioContext播放, 会同时播放,而不是前一个暂停

- 事件绑定

innerAudioContext除onTimeupdate事件以外, 都是类似于addEventListener的事件绑定, 可绑定多个函数, 也可取消绑定; onTimeupdate只执行最后一个绑定的事件

# BUG:

-  InnerAudioContext正在播放, 如果此时赋值相同的src, 会导致timeUpdate不执行。但是如果再赋值之前或者之后调用一下InnerAudioContext.src, 则timeUpdate正常执行

-  Android 上如果在暂停的状态下 seek + play 无法生效,需要 play or stop + seek + play

-  innerAudioContext.paused 不可信