// 终极解决方案
// destroy需要在onStop里面使用,不然会报错
// 调用Stop停止音乐后销毁,使用时再重新创建

export function playAudioBackground(src) {
 if (!src) return
  const audioBackgroundContext = wx.createInnerAudioContext({
    useWebAudioImplement: true 
  })
  audioBackgroundContext.src = src
  audioBackgroundContext.loop = true
  audioBackgroundContext.play() // 播放
  audioBackgroundContext.onStop(() => {
    audioBackgroundContext.destroy();
  })
  return audioBackgroundContext
}

// 使用
this.backgroundAudio = playAudioBackground('https://xxxx')

// 销毁
  backgroundAudioDestroy() {
    if (this.backgroundAudio) {
      this.backgroundAudio.pause()
      this.backgroundAudio.stop()
      this.backgroundAudio = null
    }
  }

旅图灬
913 声望43 粉丝

任何事物都有它的正反面,研究技术要全面