微信小程序innerAudioContext设置autoplay为true后,切换src时播放器状态的变化

微信小程序innerAudioContext设置autoplay为true后,切换src时播放器状态的变化

innerAudioContext是微信小程序自带的页面内播放器,可以通过 wx.createInnerAudioContext 接口获取实例。innerAudioContext 的用法如下:
首先获取播放器实例

const innerAudioContext = wx.createInnerAudioContext()

播放音乐需要设置innerAudioContext的src

innerAudioContext.src = XXXXX.mp3

不同于BackgroundAudioManager设置了src后播放器会自动播放,innerAudioContext在设置了音乐的src后,需要手动控制播放。
可以调用play()方法来播放音乐

innerAudioContext.play()

如果不想手动播放的话,可以设置innerAudioContext的autoplay属性,将其设置为自动播放

innerAudioContext.autoplay = true

设置了自动播放后,只要改变了音乐的src,innerAudioContext就会自动播放最新设置的音乐。这里研究了下切换src时播放器的状态,算是一点冷门的东西了。
首先,在把autoplay属性设置为true时,切换到另一个不同的src时,音乐会自动播放;但如果切换的src与之前的src相同,播放器则不会播放新的src

innerAudioContext.autoplay = true
innerAudioContext.src = a.mp3
//播放器播放a.mp3
innerAudioContext.src = b.mp3
//播放器播放b.mp3
innerAudioContext.autoplay = true
innerAudioContext.src = a.mp3
//播放器播放a.mp3
innerAudioContext.src = a.mp3
//播放器不再播放a.mp3

这时如果想实现再次播放的话,只能手动调用play()方法

innerAudioContext.autoplay = true
innerAudioContext.src = a.mp3
//播放器播放a.mp3
innerAudioContext.src = a.mp3
innerAudioContext.play()
//播放器从头播放a.mp3

在切换播放音乐的src时,播放器的状态也会发生改变,官方提供了几个API例如onstop(),onPause(),onplay()等等来监听播放器的状态从而进行交互。这里主要讨论onstop()和onPause()。

经过实践发现在切换src时,播放器的状态与手机的操作系统有关(ios和android)
在android手机上,切换src时会触发播放器的stop()方法,然后再播放新的src
在ios手机上,切换src时会触发播放器的pause()方法,然后再播放新的src

innerAudioContext.autoplay = true
innerAudioContext.src = a.mp3
//播放器播放a.mp3
innerAudioContext.src = b.mp3
//播放器播放b.mp3
innerAudioContext.onStop((res) => {
console.log('音乐停止')
})
innerAudioContext.onPause((res) => {
console.log('音乐暂停')
})
//在android手机上显示 音乐停止
//在ios手机上显示 音乐暂停
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值