微信小程序背景音频调用stop或自然播放结束后无法重新播放

问题:微信小程序背景音频BackgroundAudioManager调用stop或自然播放结束后重新播放无效。
原因:经测试发现:在iOS和微信调试工具调用stop或自然播放结束后,音频地址被清空了,而在安卓音频地址不为空。
解决方案:设置一个变量resetBgAudio判断是否重置音频,在onStop和onEnded监听事件中标记resetBgAudio为true,在onPlay监听事件中标记resetBgAudio为false,点击播放按钮时,判断resetBgAudio为true的话重置音频。

// 监听音频播放事件
bgAudio.onPlay(() => {
  this.setData({isPlay: true})
  this.resetBgAudio = false
})
// 监听音频结束事件
bgAudio.onStop(() => {
  this.setData({isPlay: false})
  this.resetBgAudio = true
})
// 监听音频自然播放至结束的事件
bgAudio.onEnded(() => {
  this.setData({isPlay: false})
  this.resetBgAudio = true
})

// 播放/暂停
onPlay() {
  if (this.data.isPlay) {
    bgAudio.pause()
  } else {
    if (this.resetBgAudio) {
      bgAudio.src = 'xxx.mp3'
      bgAudio.title = '标题'
    }
    bgAudio.play()
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容