美文网首页微信小程序踩坑记录
微信小程序背景音频调用stop或自然播放结束后无法重新播放

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

作者: 飞鱼YE | 来源:发表于2019-05-18 11:42 被阅读0次

问题:微信小程序背景音频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()
  }
}

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/ugnzaqtx.html