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)
})