search
开发文档
开发文档/小游戏开发/API/媒体/音频
音频更新时间:2025-12-19 10:44:03

qg.createInnerAudioContext

基础信息说明

功能概述:创建内部音频上下文 InnerAudioContext,用于播放、控制与监听音频状态

项目说明
版本要求
前提条件资源可访问、网络/文件权限已配置
使用限制
相关教程

参数说明

返回值说明

同步方法:调用后立即返回InnerAudioContext 实例。

属性名类型说明
audioInnerAudioContext音频实例对象,用于播放控制与事件监听

InnerAudioContext 属性(读写)

属性名类型默认值说明
srcString-音频资源地址
startTimeNumber0开始播放位置(秒)
obeyMuteSwitchBooleanTRUE是否遵循系统静音开关
autoplayBooleanFALSE资源可用时是否自动播放
loopBooleanFALSE是否循环播放
volumeNumber1音量,0.0–1.0;静音状态下写入被暂存

InnerAudioContext 属性(只读)

属性名类型说明
durationNumber当前音频时长(秒),需合法 src
currentTimeNumber当前播放位置(秒),时间保留小数点后 6 位
pausedBoolean是否暂停或停止状态
bufferedTimeRanges已缓存区间(当前时间点到此时间点内容已缓存)

InnerAudioContext 方法

方法名签名说明
play()(): void开始播放;首次有效播放会从 startTime 开始
pause()(): void暂停播放;再次播放从暂停处继续
stop()(): void停止播放;再次播放从 startTime 位置开始
seek()(position: number): void跳转到指定位置(秒)
destroy()(): void销毁实例,释放资源

监听/取消监听事件方法

支持为同一事件挂多个监听并按需移除。

  • 触发机制:所有事件均为异步,并在播放流程中触发。
  • 命名与用法:事件以小写属性命名;推荐通过小驼峰订阅/取消方法(onX/offX)注册多个监听。
  • 回调签名:(event?: Event) => void;除 onerror 外,一般不携带结构化数据。
事件属性订阅方法取消订阅方法说明
oncanplayonCanplay(cb)offCanplay(cb)进入可播放状态(不保证流畅)
onplayonPlay(cb)offPlay(cb)开始播放
onpauseonPause(cb)offPause(cb)暂停成功(受内部事件锁控制)
onstoponStop(cb)offStop(cb)停止成功(受内部事件锁控制)
onendedonEnded(cb)offEnded(cb)自然播放结束
ontimeupdateonTimeUpdate(cb)offTimeUpdate(cb)进度更新(多次)
onerroronError(cb)offError(cb)播放或资源异常
onwaitingonWaiting(cb)offWaiting(cb)缓冲不足暂停加载
onseekingonSeeking(cb)offSeeking(cb)执行跳转前
onseekedonSeeked(cb)offSeeked(cb)完成跳转后

错误码

监听音频播放错误事件 InnerAudioContext.onError(Function callback)会响应错误码,onError 回调参数通常为对象,并包含以下字段;具体值依运行环境实现。

callback参数Object

字段名类型说明
errCodeNumber错误码,用于标识错误类型
errMsgString错误信息(示例:MediaError)
typeString事件类型(示例: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)
上一篇:数据缓存
下一篇:图片
文档内容是否有帮助?
有帮助
无帮助