音频
InnerAudioContext
audio 上下文 innerAudioContext 实例对象。
对象的属性列表:
属性 | 类型 | 是否只读 | 描述 |
---|---|---|---|
src | string | 否 | 音频的数据链接,用于直接播放。 |
startTime | number | 否 | 开始播放的位置(单位:s),默认 0 |
autoplay | boolean | 否 | 是否自动开始播放,默认 false |
loop | boolean | 否 | 是否循环播放,默认 false |
duration | number | 是 | 当前音频的长度(单位:s),只有在当前有合法的 src 时返回 |
currentTime | number | 是 | 当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,结果保留不超过 6 位小数的浮点数或者整数 |
paused | boolean | 是 | 当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放 |
buffered | number | 是 | 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲 |
volume | number | 否 | 音量,范围 0~1,默认 1 |
swan.createInnerAudioContext()
创建并返回内部 audio 上下文 innerAudioContext 实例对象。
swan.createInnerAudioContext()
返回值:
Object
类型的对象:
属性 | 类型 | 描述 |
---|---|---|
innerAudioContext | Object | 音频上下文 innerAudioContext 实例对象 |
swan.setInnerAudioOption()
基础库 swan-game.js 1.7.2 版本开始支持。
对 InnerAudioContext
的播放选项进行全局设置。
swan.setInnerAudioOption(opts)
参数值:
属性 | 类型 | 默认值 | 是否必填 | 描述 |
---|---|---|---|---|
mixWithOther | boolean | false | 否 | 是否与其他音频混播,设置为 true 之后,不会终止其他应用的音乐 |
obeyMuteSwitch | boolean | true | 否 | (iOS 特有)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音 |
success | function | 否 | 设置成功的回调函数 | |
fail | function | 否 | 设置失败的回调函数 | |
complete | function | 否 | 接口调用完成的回调函数(接口成功、失败都会执行) |
success
回调函数:
形如 function (res) {...}
,其中:
属性 | 类型 | 描述 |
---|---|---|
res.errMsg | string | 调用结果 |
fail
回调函数:
形如 function (res) {...}
,其中:
属性 | 类型 | 描述 |
---|---|---|
res.errMsg | string | 报错信息 |
示例:
swan.setInnerAudioOption({
mixWithOther: true,
obeyMuteSwitch: true,
success: res => {
console.log('设置成功');
},
fail: err => {
console.log('设置失败', err);
}
});
innerAudioContext.play()
音频播放事件。
innerAudioContext.play()
innerAudioContext.onPlay()
监听音频播放事件。
innerAudioContext.onPlay(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offPlay()
取消监听音频播放事件。
innerAudioContext.offPlay(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频开始播放事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onCanplay()
监听音频进入可以播放状态的事件,但不保证后面可以流畅播放。
innerAudioContext.onCanplay(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offCanplay()
取消监听音频进入可以播放状态的事件。
innerAudioContext.offCanplay(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频进入可以播放状态的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.stop()
停止播放事件。
innerAudioContext.stop()
innerAudioContext.onStop()
监听音频停止事件。
innerAudioContext.onStop(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offStop()
取消监听音频停止事件。
innerAudioContext.offStop(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频停止事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onEnded()
监听音频自然播放至结束的事件。
innerAudioContext.onEnded(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offEnded()
取消监听音频自然播放至结束的事件。
innerAudioContext.offEnded(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频自然播放至结束的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.pause()
暂停播放事件。
innerAudioContext.pause()
innerAudioContext.onPause()
监听音频暂停事件。
innerAudioContext.onPause(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offPause()
取消监听音频暂停事件。
innerAudioContext.offPause(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频暂停事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onError()
监听音频播放错误事件。
innerAudioContext.onError(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
回调函数参数值:
Object res
属性 | 类型 | 描述 | 支持版本 |
---|---|---|---|
res | Object | 回调函数参数值 | |
res.errCode | string | 错误码 | |
res.errMsg | string | 错误说明 |
errCode 的有效值
值 | 说明 |
---|---|
10001 | 系统错误 |
10002 | 网络错误 |
10003 | 文件错误 |
10004 | 格式错误 |
-1 | 未知错误 |
注意:Android 的返回值不包含 errMsg
innerAudioContext.offError()
取消监听音频播放错误事件。
innerAudioContext.offError(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频播放错误事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.seek()
跳转到指定位置。
innerAudioContext.seek(opts)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
opts | number | 是 | 跳转的位置(单位:s) |
示例:
InnerAudioContext.seek(100);
innerAudioContext.onSeeked()
监听音频完成跳转操作的事件。
innerAudioContext.onSeeked(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offSeeked()
取消监听音频完成跳转操作的事件。
innerAudioContext.offSeeked(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频完成跳转操作的事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onSeeking()
监听音频进行跳转操作的事件。
innerAudioContext.onSeeking(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offSeeking()
取消监听音频进行跳转操作的事件。
innerAudioContext.offSeeking(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频进行跳转操作的事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onTimeUpdate()
监听音频播放进度更新事件。
innerAudioContext.onTimeUpdate(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
返回值:
Object
类型的对象:
属性 | 类型 | 描述 |
---|---|---|
currentTime | number | 当前音频的播放位置,单位 s。只有在当前有合法的 src 时返回,时间不取整,结果保留不超过 6 位小数的浮点数或者整数 |
duration | number | 当前音频的长度,单位 s。只有在当前有合法的 src 时返回 |
示例:
const audioCtx = swan.createInnerAudioContext();
audioCtx.src = 'https://vd3.bdstatic.com/mda-ic7mxzt5cvz6f4y5/mda-ic7mxzt5cvz6f4y5.mp3';
// 事件监听
audioCtx.onTimeUpdate(res => {
console.log('当前信息展示:', JSON.stringify(res));
});
innerAudioContext.offTimeUpdate()
取消监听音频播放进度更新事件。
innerAudioContext.offTimeUpdate(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频播放进度更新事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.onWaiting()
监听音频加载中事件,当音频因为数据不足,需要停下来加载时会触发。
innerAudioContext.onWaiting(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 是 | 监听事件的回调函数 |
innerAudioContext.offWaiting()
取消监听音频加载中事件。
innerAudioContext.offWaiting(callback)
参数值:
属性 | 类型 | 是否必填 | 描述 |
---|---|---|---|
callback | function | 否 | 音频加载中事件的回调函数 |
注意:
参数为空时将删除所有回调函数
innerAudioContext.destroy()
销毁当前音频实例。
innerAudioContext.destroy()