收藏
回答

wx.createInnerAudioContext().stop() 无法停止音乐播放的解决办法?

    代码如下:

  tap_audio_play() {
    let that = this;
    let audio = that.data.audio;
    let show_audio = that.data.show_audio;
    if (show_audio == true) {
      const innerAudioContext = wx.createInnerAudioContext({
        useWebAudioImplementfalse // 是否使用 WebAudio 作为底层音频驱动,默认关闭。对于短音频、播放频繁的音频建议开启此选项,开启后将获得更优的性能表现。由于开启此选项后也会带来一定的内存增长,因此对于长音频建议关闭此选项
      });
      innerAudioContext.src = audio.fileID;      
      innerAudioContext.play() // 播放
      that.setData({
        show_audio:false
      })
    } else if (show_audio == false) {
      const innerAudioContext = wx.createInnerAudioContext({
        useWebAudioImplementfalse 
      });
      innerAudioContext.src = audio.fileID;      
      innerAudioContext.stop() // 停止
      innerAudioContext.destroy() // 释放音频资源
      that.setData({
        show_audio:true
      })
    };
  }, 

使用.stop()无法停止 音频的播放,即使加了.destroy()也不会停止播放,而且每点击一次,音频就会增加一次播放,几个音频叠加播放,声音很混乱,也无法停止!

使用两个函数,一个播放音乐,一个停止音乐也不行!

开发者工具和真机都无法停止音乐播放!

请帮忙解决!

微信开发者工具:Stable 1.06.2401020, 调试基础库3.3.4,


回答关注问题邀请回答
收藏

1 个回答

  • 0
    0
    02-26
    不要重复创建wx.createInnerAudioContext    创建好之后存储到data中,stop也要用data中的那个innerAudioContext 才能停止
    


    02-26
    有用 2
    回复 3
    • 曹钰辉
      曹钰辉
      发表于移动端
      02-26
      请问data是指什么 ? 麻烦指导一下这个代码! 非常感谢!
      02-26
      回复
    • ㅤㅤ不如少点质疑
      ㅤㅤ不如少点质疑
      10-30
      按照你说的放到了data里边,但是点击不同的语音,会调用多次play()
      10-30
      回复
    • 暖阳
      暖阳
      11-07回复ㅤㅤ不如少点质疑
      每次调用前先停止,先stop()再play()
      11-07
      回复
登录 后发表内容