基础库 3.148.0 开始支持。
xhs.createInnerAudioContext() 返回的音频上下文实例。
属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| src | string | — | 否 | 音频资源地址。支持网络路径。设置后若 autoplay 为 true,会自动触发播放 |
| startTime | number | 0 | 否 | 音频开始播放的位置(单位:秒) |
| autoplay | boolean | false | 否 | 是否自动播放。需在 src 设置之前配置 |
| loop | boolean | false | 否 | 是否循环播放 |
| volume | number | 1 | 否 | 音量,范围 0~1 |
| playbackRate | number | 1 | 否 | 播放速率 |
| duration | number | — | 否 | 只读。当前音频时长(单位:秒),需在可以播放后才有效 |
| currentTime | number | — | 否 | 只读。当前播放位置(单位:秒) |
| paused | boolean | true | 否 | 只读。当前是否暂停 |
| buffered | number | — | 否 | 只读。音频已缓冲的时间点(单位:秒) |
duration、currentTime、paused、buffered 均为同步读取端侧状态,调用时会直接向端侧查询当前值。
方法 | 说明 |
|---|---|
| play() | 播放 |
| pause() | 暂停 |
| stop() | 停止。停止后再次 play() 会从头开始播放 |
| seek(position) | 跳转到指定位置(单位:秒) |
| destroy() | 销毁当前实例,释放资源。不再使用时请调用此方法,避免内存泄漏 |
方法 | 说明 |
|---|---|
| onCanplay(callback) | 监听音频进入可播放状态 |
| offCanplay(callback) | 取消监听 |
| onPlay(callback) | 监听播放事件 |
| offPlay(callback) | 取消监听 |
| onPause(callback) | 监听暂停事件 |
| offPause(callback) | 取消监听 |
| onStop(callback) | 监听停止事件 |
| offStop(callback) | 取消监听 |
| onEnded(callback) | 监听自然播放至末尾事件 |
| offEnded(callback) | 取消监听 |
| onTimeUpdate(callback) | 监听播放进度更新事件 |
| offTimeUpdate(callback) | 取消监听 |
| onError(callback) | 监听播放错误事件 |
| offError(callback) | 取消监听 |
| onWaiting(callback) | 监听音频加载中事件(缓冲不足,播放暂停) |
| offWaiting(callback) | 取消监听 |
| onSeeking(callback) | 监听跳转进度中事件 |
| offSeeking(callback) | 取消监听 |
| onSeeked(callback) | 监听跳转进度完成事件 |
| offSeeked(callback) | 取消监听 |
const audioCtx = xhs.createInnerAudioContext()
audioCtx.src = 'https://example.com/audio.aac'
audioCtx.onPlay(() => {
console.log('开始播放')
})
audioCtx.onError((err) => {
console.error('播放错误', err)
})
audioCtx.play()
// 页面卸载时记得销毁
audioCtx.destroy()