收藏
回答

BackgroundAudioManager的一系列问题

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug BackgroundAudioManager 微信iOS客户端 Android 6.6.6 2.0.9

1、当小程序处于后台情况下,如果通过微信的音乐播放控制去停止播放(包括安卓通知栏的×和全屏音乐播放控制下暂停后微信自动停止播放),都不会回调到小程序。而如果仅仅是通过通知栏进行暂停,即使小程序在后台,还是有回调的,只是后续的停止不会回调。

2、在以上情况下回到小程序后,在app的onShow方法里去查询wx.getBackgroundAudioManager()的url、paused、currentTime等参数:

在开发者工具中,会正确重置成url为undefined,paused为true,currentTime为0,即无歌曲在播放状态;

在远程调试(开发版)情况下,url为undefined,paused为true,currentTime却为停止时的时间

而在体验版情况下,url为null,paused为false,currentTime却是切后台的时间。


三种环境,三种情况,这让我们如何开发?

从现象上看,是当小程序处于后台的时候,微信没有将播放器的状态改变正确同步到小程序js中的BackgroundAudioManager中。

开发者工具的行为是正确的,微信自身什么时候能把这些bug修复呢?

最后一次编辑于  2018-06-13
回答关注问题邀请回答
收藏

3 个回答

  • Fidelity
    Fidelity
    08-09

    只想知道为啥 paused 这个属性是 enumerable=false 的, 既想隐藏起来, 干嘛又开放出来?

    08-09
    赞同
    回复
  • 朋橙~不忘初心
    朋橙~不忘初心
    2018-10-19

    为什么都三个月过去了,还没有修复呢,有看到的官方给个回复

    2018-10-19
    赞同
    回复 2
    • Bruce
      Bruce
      06-05

      最近也在做后台播放,请问你们最后是怎么解决这个问题的?

      另外小程序退到后台后,回调函数还正常吗?我们这边需要把播放进度每隔10秒同步到服务器端。

      06-05
      回复
    • 朋橙~不忘初心
      朋橙~不忘初心
      06-11回复Bruce

      回调函数还是正常的;当时是查询播放返回的状态,真机和开发平台上不一致;后来好像改逻辑了

      06-11
      回复
  • Special
    Special
    2018-06-16

    你好,这里确实有问题,我们尽快解决,谢谢反馈

    2018-06-16
    赞同
    回复 2
    • 程
      2018-06-21
      还有在android下,protocol设置为'hls'播放m3u8的音频,一直在waiting的状态,而ios下播放正常
      2018-06-21
      回复
    • Bruce
      Bruce
      06-05

      您好,这个问题解决了吗?

      06-05
      回复