- 创建内部 audio 上下文 InnerAudioContext 对象
- InnerAudioContext 音频资源不会自动释放
- 如果不需要使用音频,请调用 InnerAudioContext.destroy() 释放资源,避免内存泄漏
- 音频播放过程中,可能被系统中断
- 获取全局唯一的背景音频管理器;创建背景音乐管理器
- 若需要在小程序切后台后继续播放音频,需要在 app.json 中配置 requiredBackgroundModes 属性;正式版还需通过审核
"requiredBackgroundModes": ["audio"]
设置后,即使用户离开小程序或锁屏,背景音乐也能继续播放
- BackgroundAudioManager 实例
- 通过 wx.getBackgroundAudioManager() 获取
一般属性
item |
desc |
src |
音频资源的地址;设置了新的 src 时,会自动开始播放 |
title |
音频标题,用于原生音频播放器音频标题;必填;分享出去的卡片标题将使用该值 |
startTime |
开始播放的位置;单位 s |
playbackRate |
播放速度 0.5-2.0;默认 1;经测试,不支持 |
duration |
当前音频的长度;只读 |
currentTime |
当前音频的播放位置;单位 s;改变 currentTime 值等同于调用 seek;只读 |
paused |
当前是是否暂停或停止状态;只读 |
一般方法
item |
desc |
play() |
播放 |
pause() |
暂停。暂停后的音频再播放会从暂停处开始播放 |
seek() |
跳转到指定位置 |
stop() |
停止。停止后的音频再播放会从头开始播放 |
侦听方法
item |
desc |
onCanplay(function listener) |
监听音频进入可以播放状态的事件。但不保证后面可以流畅播放;可以获取 duration |
onPlay(function listener) |
监听音频播放事件;建议在此获取 duration |
onPause(function listener) |
监听音频暂停事件 |
onSeeked(function listener) |
监听音频完成跳转事件 |
onStop(function listener) |
监听音频停止事件 |
onEnded(function listener) |
监听音频自然播放至结束的事件;资源会被释放 |
onTimeUpdate(function listener) |
监听音频播放进度更新事件 |
onError(function listener) |
监听音频播放错误事件;如果错误,给出相应的错误代码 |
建议每次更新 src 时,都重新添加侦听事件,即侦听事件放在更新 src 后面
其它属性
epname:专辑名;分享出去的卡片简介将使用该值
singer:歌手名;分享出去的卡片简介将使用该值
coverImgUrl:封面图 URL,用于做原生音频播放器背景图;分享出去的卡片配图及背景将使用该图
webUrl:页面链接;分享出去的卡片简介将使用该值
[] 极简版音乐播放器
Page({
onLoad() {
const bgm = wx.getBackgroundAudioManager()
bgm.title = 'wang fei'
bgm.src = 'https://glpla.github.io/utils/music/wang.mp3'
}
})