我们有一个需要在后台播放音乐并且需要具有循环播放的能力。
针对此功能我们做了如下尝试:
最初,我们在设计这个场景时,采用了 audio 组件,虽然满足了循环播放功能,但是在锁屏之后,音乐立刻停止,故而无法满足背景播放功能。
然后,想到了API 中的 playBackgroundAudio 方法,虽然解决了锁屏后的背景音乐播放问题,但是问题又来了,playBackgroundAudio 方法不能循环播放音乐,该方法还是无法满足最初的设想。
接着,我们想到了 监听音乐停止,然后重新启动播放,我们采用了 stopBackgroundAudio 来实现,可是这样虽然满足了手动循环播放的功能,但是由于监听停止播放和重新播放这中间有一定的时差,故而中间有那么一小段时间的停顿,体验感极差。
当然,我们还想到了 背景音乐管理器,即:getBackgroundAudioManager 的 seek 方法 和 startTime 属性,但是在手机上测试,要么就是没有效果,要么就是延迟特别严重,seekBackgroundAudio 方法也是同样的原理,总之还是无法达到最好的体验。
目前,我们是采用的 stopBackgroundAudio 来暂时实现,虽然有停顿,但是起码能够持续播放,不知道各位 朋友有没有更好的实现方法,也真诚的希望微信官方能够提供一个比较合理的实现方案。在此拜谢!
如果是同一首音频的话,在onEnded事件监听里面重新给src赋值就可以实现循环播放
在哪个函数里面监听这个onEnded?
给wx.createInnerAudioContext()创建的
InnerAudioContext
对象添加onEnded监听事件就可以好的,感谢
再请问下有遇到,分享之后出来,直接 .play() 不行?
分享的时候有暂停吗?
楼上正解+1
我再做音频连续播放的时候,
首先你play一个音频的时候 加一个事件监听,onEnded 当前播放完了你再onEnded里面继续再调用play方法去播放你想要播放的音频即可,希望对你有帮助~