美文网首页微信小程序踩坑记录
微信小程序背景音频调用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