说明
使用BackgroundAudioManager创建的实例,小程序切换到手机后台、小程序内页面间跳转,都不会影响音频的连续播放,可以很好的实现一个音频播放器。
BackgroundAudioManager是单实例,全局唯一,在任意页面任何位置调用wx.getBackgroundAudioManager()既可以获得。
效果
音频列表循环播放,支持上一首、下一首切换,实时进度展示,快进。
思路
- 将播放的音频列表放在app.globalData或本地做缓存,保证音频切换时找到对应列表。
- 将音频播放的实时状态放在app.globalData或本地做缓存,保证展示音频播放详情页的音频名称、实时进度等正确展示。
- 方法中BackgroundAudioManager.on*为监听事件,操作业务放在回调函数中处理。
- BackgroundAudioManager的属性中,所有属性可以直接BackgroundAudioManager.获取值,非只读的属性可以通过BackgroundAudioManager. = ‘’ 方式赋值。
效果图
- 小程序界面
- 手机后台,顶部下拉
代码片段
详细代码请下载代码片段,可以直接运行demo。
https://developers.weixin.qq.com/s/VAmjRsmZ7090
楼主,如果list数组中有多个语音,在wxml页面中进行wx:for渲染时,为什么所有的音频会一起播放,开始和暂停按钮也变成了同步
初学者,如果把这个程序改成播放手机本地某个文件夹里的MP3,该怎么改呢? 大佬赐教!
想问一下,这样实现出来的效果 手机上面那个音频栏目无法显示吗
下面出现的警告怎么解决啊?
正在学习小程序,拿去用了谢谢
不错不错,slider和秒数的转换可以
提个点,onShow时会重复对backgroundAudio的事件绑定,虽然不影响程序运行
可以考虑用事件订阅的方式来管理事件
再提个点,加载音频时可能需要缓冲,可以考虑加上 onWaiting、onCanplay 事件来处理状态