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 |
方法
| 参数 | 类型 | 默认值 | 只读 | 说明 |
|---|---|---|---|---|
| autoplay | boolean | false | 否 | 是否自动开始播放 |
| buffered | number | 是 | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 | |
| currentTime | number | 是 | 当前音频的播放位置(单位 s)。只有在当前有合法的 src 时返回,时间保留小数点后 6 位 | |
| duration | number | 是 | 当前音频的长度(单位 s)。只有在当前有合法的 src 时返回 | |
| loop | boolean | false | 否 | 是否循环播放 |
| obeyMuteSwitch | boolean | true | 否 | 是否遵循系统静音开关。当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音。从 2.3.0 版本开始此参数不生效,使用 Taro.setInnerAudioOption 接口统一设置。 |
| paused | boolean | 是 | 当前是是否暂停或停止状态 | |
| src | string | 否 | 音频资源的地址,用于直接播放。 | |
| startTime | number | 0 | 否 | 开始播放的位置(单位:s) |
| volume | number | 1 | 否 | 音量。范围 0~1。 |
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)
})