音频更新时间:2025-12-19 10:44:03
qg.createInnerAudioContext
基础信息说明
功能概述:创建内部音频上下文 InnerAudioContext,用于播放、控制与监听音频状态
| 项目 | 说明 |
| 版本要求 | 无 |
| 前提条件 | 资源可访问、网络/文件权限已配置 |
| 使用限制 | 无 |
| 相关教程 | 无 |
参数说明
无
返回值说明
同步方法:调用后立即返回InnerAudioContext 实例。
| 属性名 | 类型 | 说明 |
| audio | InnerAudioContext | 音频实例对象,用于播放控制与事件监听 |
InnerAudioContext 属性(读写)
| 属性名 | 类型 | 默认值 | 说明 |
| src | String | - | 音频资源地址 |
| startTime | Number | 0 | 开始播放位置(秒) |
| obeyMuteSwitch | Boolean | TRUE | 是否遵循系统静音开关 |
| autoplay | Boolean | FALSE | 资源可用时是否自动播放 |
| loop | Boolean | FALSE | 是否循环播放 |
| volume | Number | 1 | 音量,0.0–1.0;静音状态下写入被暂存 |
InnerAudioContext 属性(只读)
| 属性名 | 类型 | 说明 |
| duration | Number | 当前音频时长(秒),需合法 src |
| currentTime | Number | 当前播放位置(秒),时间保留小数点后 6 位 |
| paused | Boolean | 是否暂停或停止状态 |
| buffered | TimeRanges | 已缓存区间(当前时间点到此时间点内容已缓存) |
InnerAudioContext 方法
| 方法名 | 签名 | 说明 |
| play() | (): void | 开始播放;首次有效播放会从 startTime 开始 |
| pause() | (): void | 暂停播放;再次播放从暂停处继续 |
| stop() | (): void | 停止播放;再次播放从 startTime 位置开始 |
| seek() | (position: number): void | 跳转到指定位置(秒) |
| destroy() | (): void | 销毁实例,释放资源 |
监听/取消监听事件方法
支持为同一事件挂多个监听并按需移除。
- 触发机制:所有事件均为异步,并在播放流程中触发。
- 命名与用法:事件以小写属性命名;推荐通过小驼峰订阅/取消方法(onX/offX)注册多个监听。
- 回调签名:(event?: Event) => void;除 onerror 外,一般不携带结构化数据。
| 事件属性 | 订阅方法 | 取消订阅方法 | 说明 |
| oncanplay | onCanplay(cb) | offCanplay(cb) | 进入可播放状态(不保证流畅) |
| onplay | onPlay(cb) | offPlay(cb) | 开始播放 |
| onpause | onPause(cb) | offPause(cb) | 暂停成功(受内部事件锁控制) |
| onstop | onStop(cb) | offStop(cb) | 停止成功(受内部事件锁控制) |
| onended | onEnded(cb) | offEnded(cb) | 自然播放结束 |
| ontimeupdate | onTimeUpdate(cb) | offTimeUpdate(cb) | 进度更新(多次) |
| onerror | onError(cb) | offError(cb) | 播放或资源异常 |
| onwaiting | onWaiting(cb) | offWaiting(cb) | 缓冲不足暂停加载 |
| onseeking | onSeeking(cb) | offSeeking(cb) | 执行跳转前 |
| onseeked | onSeeked(cb) | offSeeked(cb) | 完成跳转后 |
错误码
监听音频播放错误事件 InnerAudioContext.onError(Function callback)会响应错误码,onError 回调参数通常为对象,并包含以下字段;具体值依运行环境实现。
callback参数Object
| 字段名 | 类型 | 说明 |
| errCode | Number | 错误码,用于标识错误类型 |
| errMsg | String | 错误信息(示例:MediaError) |
| type | String | 事件类型(示例:error) |
errCode 的合法值
| 错误码 | 错误信息 | 说明 |
| 10001 | 系统错误 | 系统级异常导致播放失败 |
| 10002 | 网络错误 | 资源请求失败或网络异常 |
| 10003 | 文件错误 | 本地/远程文件读取异常或不存在 |
| 10004 | 格式错误/媒体错误 | 不支持的音频格式或媒体解码失败(示例 errMsg:MediaError) |
| -1 | 未知错误 | 未归类的其他错误 |
示例代码
// 创建并播放音频(使用订阅/取消方法)
const audio = qg.createInnerAudioContext()
audio.src = 'http://music.163.com/song/media/outer/url?id=1293886117.mp3'
audio.onCanplay(() => {
console.log('音频可播放')
audio.play()
})
// 跳转到 3 秒
audio.seek(3)
// 暂停
audio.pause()
// 停止(下次从 startTime 处开始)
audio.stop()
// 销毁实例
audio.destroy()
audio.onTimeUpdate(() => {
console.log('进度:', audio.currentTime.toFixed(2))
})
audio.onError((e) => {
console.error('播放错误', e)
})
// 订阅/取消事件
function onUpdate({}) {
console.log('订阅: 进度更新')
}
audio.onTimeUpdate(onUpdate)
// audio.offTimeUpdate(onUpdate)上一篇:数据缓存
下一篇:图片
文档内容是否有帮助?
有帮助
无帮助