InnerAudioContext
InnerAudioContext 实例,可通过 Taro.createInnerAudioContext 接口获取实例。
支持格式
格式 | iOS | Android |
---|---|---|
flac | x | √ |
m4a | √ | √ |
ogg | x | √ |
ape | x | √ |
amr | x | √ |
wma | x | √ |
wav | √ | √ |
mp3 | √ | √ |
mp4 | x | √ |
aac | √ | √ |
aiff | √ | x |
caf | √ | x |
方法
参数 | 类型 | 默认值 | 只读 | 必填 | 说明 |
---|---|---|---|---|---|
src | string | 否 | 是 | 音频资源的地址,用于直接播放。 | |
startTime | number | 0 | 否 | 是 | 开始播放的位置(单位:s) |
autoplay | boolean | false | 否 | 是 | 是否自动开始播放 |
loop | boolean | false | 否 | 是 | 是否循环播放 |
obeyMuteSwitch | boolean | true | 否 | 是 | 是否遵循系统静音开关。当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音。从 2.3.0 版本开始此参数不生效,使用 Taro.setInnerAudioOption 接口统一设置。 |
volume | number | 1 | 否 | 是 | 音量。范围 0~1。 |
playbackRate | number | 1 | 否 | 是 | 播放速度。范围 0.5-2.0。 |
duration | number | 是 | 是 | 当前音频的长度(单位 s)。只有在当前有合法的 src 时返回 | |
currentTime | number | 是 | 是 | 当前音频的播放位置(单位 s)。只有在当前有合法的 src 时返回,时间保留小数点后 6 位 | |
paused | boolean | 是 | 是 | 当前是是否暂停或停止状态 | |
buffered | number | 是 | 是 | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 | |
referrerPolicy | string | 否 | 否 | origin: 发送完整的 referrer; no-referrer: 不发送 |
play
播放
支持情况:
() => void
pause
暂停
支持情况:
() => void
stop
停止
支持情况:
() => void
seek
跳转到指定位置,单位 s
支持情况:
(position: number) => void
参数 | 类型 |
---|---|
position | number |
destroy
销毁当前实例
支持情况:
() => void
onCanplay
音频进入可以播放状态,但不保证后面可以流畅播放
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onPlay
音频播放事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onPause
音频暂停事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onStop
音频停止事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onEnded
音频自然播放结束事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onTimeUpdate
音频播放进度更新事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onError
音频播放错误事件
支持情况:
(callback?: (res: onErrorDetail) => void) => void
参数 | 类型 |
---|---|
callback | (res: onErrorDetail) => void |
onWaiting
音频加载中事件,当音频因为数据不足,需要停下来加载时会触发
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onSeeking
音频进行 seek 操作事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
onSeeked
音频完成 seek 操作事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offCanplay
取消监听 onCanplay 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offPlay
取消监听 onPlay 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offPause
取消监听 onPause 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offStop
取消监听 onStop 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offEnded
取消监听 onEnded 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offTimeUpdate
取消监听 onTimeUpdate 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offError
取消监听 onError 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offWaiting
取消监听 onWaiting 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offSeeking
取消监听 onSeeking 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
offSeeked
取消监听 onSeeked 事件
支持情况:
(callback?: () => void) => void
参数 | 类型 |
---|---|
callback | () => void |
参数
onErrorDetail
参数 | 类型 | 说明 |
---|---|---|
errCode | number | 错误码 |
errMsg | string | 错误信息 |
onErrorDetailErrCode
参数 | 说明 |
---|---|
10001 | 系统错误 |
10002 | 网络错误 |
10003 | 文件错误 |
10004 | 格式错误 |
-1 | 未知错误 |
示例代码
const innerAudioContext = Taro.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'https://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
innerAudioContext.onPlay(() => {
console.log('开始播放')
})
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})
API 支持度
API | 微信小程序 | H5 | React Native |
---|---|---|---|
InnerAudioContext.play | ✔️ | ✔️ | ✔️ |
InnerAudioContext.pause | ✔️ | ✔️ | ✔️ |
InnerAudioContext.stop | ✔️ | ✔️ | ✔️ |
InnerAudioContext.seek | ✔️ | ✔️ | ✔️ |
InnerAudioContext.destroy | ✔️ | ✔️ | |
InnerAudioContext.onCanplay | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onPlay | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onPause | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onStop | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onEnded | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onTimeUpdate | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onError | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onWaiting | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onSeeking | ✔️ | ✔️ | ✔️ |
InnerAudioContext.onSeeked | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offCanplay | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offPlay | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offPause | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offStop | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offEnded | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offTimeUpdate | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offError | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offWaiting | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offSeeking | ✔️ | ✔️ | ✔️ |
InnerAudioContext.offSeeked | ✔️ | ✔️ | ✔️ |