微信小程序wx.getBackgroundAudioManager()无法关闭

我在一个页面中使用wx.getBackgroundAudioManager(),播放音频,然后在onHide中添加代码

   if (this.backgroundAudioManager) {
            this.backgroundAudioManager.pause();
            data.voiceObj.controlAudio.playPause = false;
            this.setData(data);
   }

其中setData执行成功了,但是背景音频却无法停止,还在继续播放,请问有什么好的方法吗,想让小程序关闭或最小化时执行音频暂停播放

阅读 8.7k
2 个回答

不清楚是否是bug,不过在使用wx.getBackgroundAudioManager()作为全局音频播放器的时候,onHide函数中调用stop、pause等方法目前的确是无效的,后期可能有变化。

解决办法:
停止播放音乐就好了。

wx.stopBackgroundAudio()

另外有其他的API,自查文档。

前几天测试时,我也发现这个问题。个人觉得是BUG。
缩小小程序时,想让正在播放的背景音频暂停播放,如果放在Page()或App()的onHide()中,并不会触发backgroundAudioManager.pause()(stop()同理)。
Page()的onHide()只针对当navigateTo或底部tab切换时才调用,因此按照这个规则,是不会触发的。但在实际测试中,缩小小程序再展开,查看console会发现已执行过。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题