一下问题除特殊说明以外,均只测试了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 不可信
{{ cmt.username }}
{{ cmt.content }}
{{ cmt.commentDate | formatDate('YYYY.MM.DD hh:mm') }}