创建内部 audio 上下文 InnerAudioContext 对象。
一个音频对象,可以通过设置该对象上的属性和调用该对象上的方法来控制音频
注意事项 InnerAudioContext 音频资源不会自动释放,因此如果不再需要使用音频,请及时调用 InnerAudioContext.destroy() 释放资源,避免内存泄漏。
const innerAudioContext = qg.createInnerAudioContext();
innerAudioContext.src = "https://test.mp3";
innerAudioContext.play(); // 播放
innerAudioContext.pause(); // 暂停
innerAudioContext.stop(); // 停止
innerAudioContext.destroy(); // 释放音频资源
InnerAudioContext 实例,可通过 qg.createInnerAudioContext 接口获取实例。
注意,音频播放过程中,可能被系统中断,可通过 qg.onAudioInterruptionBegin、qg.onAudioInterruptionEnd 事件来处理这种情况。
音频资源的地址,用于直接播放。
开始播放的位置(单位:s),默认为 0
是否自动开始播放,默认为 false
是否循环播放,默认为 false
音量。范围 0~1。默认为 1
播放速度。范围 0.5-2.0,默认为 1。(Android 需要 6 及以上版本)
当前音频的长度(单位 s)。只有在当前有合法的 src 时返回(只读)
当前音频的播放位置(单位 s)。只有在当前有合法的 src 时返回,时间保留小数点后 6 位(改变 currentTime 值等同于调用 seek)
当前是是否暂停或停止状态(只读)
音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲(只读)
播放
暂停。暂停后的音频再播放会从暂停处开始播放
跳转到指定位置
跳转的时间,单位 s。精确到小数点后 3 位,即支持 ms 级别精确度
停止。停止后的音频再播放会从头开始播放。
销毁当前实例
监听音频播放进度更新事件
音频播放进度更新事件的监听函数
监听音频播放事件
音频播放事件的监听函数
监听音频加载中事件。当音频因为数据不足,需要停下来加载时会触发
音频加载中事件的监听函数
监听音频进入可以播放状态的事件。但不保证后面可以流畅播放
音频进入可以播放状态的事件的监听函数
监听音频进行跳转操作的事件
音频进行跳转操作的事件的监听函数
监听音频完成跳转操作的事件
音频完成跳转操作的事件的监听函数
监听音频暂停事件
音频暂停事件的监听函数
监听音频自然播放至结束的事件
音频自然播放至结束的事件的监听函数
监听音频播放错误事件
音频播放错误事件的监听函数
属性 | 类型 | 说明 |
---|---|---|
errMsg | String | |
errCode | Number |
errCode
合法值 | 说明 |
---|---|
10001 | 系统错误 |
10002 | 网络错误 |
10003 | 文件错误 |
10004 | 格式错误 |
-1 | 未知错误 |
Tips errCode=100001 时,如若 errMsg 中有 INNERCODE -11828 ,请先检查 response header 是否缺少 Content-Length errCode=100001 时,如若 errMsg 中有 systemErrCode:200333420,请检查文件编码格式和 fileExtension 是否一致
移除音频播放错误事件的监听函数
onError 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onError(listener);
InnerAudioContext.offError(listener); // 需传入与监听时同一个的函数对象
移除音频播放进度更新事件的监听函数
onTimeUpdate 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onTimeUpdate(listener);
InnerAudioContext.offTimeUpdate(listener); // 需传入与监听时同一个的函数对象
移除音频播放事件的监听函数
onPlay 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onPlay(listener);
InnerAudioContext.offPlay(listener); // 需传入与监听时同一个的函数对象
移除音频加载中事件的监听函数
onWaiting 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onWaiting(listener);
InnerAudioContext.offWaiting(listener); // 需传入与监听时同一个的函数对象
移除音频进入可以播放状态的事件的监听函数
onCanplay 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onCanplay(listener);
InnerAudioContext.offCanplay(listener); // 需传入与监听时同一个的函数对象
移除音频进行跳转操作的事件的监听函数
onSeeking 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onSeeking(listener);
InnerAudioContext.offSeeking(listener); // 需传入与监听时同一个的函数对象
移除音频完成跳转操作的事件的监听函数
onSeeked 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onSeeked(listener);
InnerAudioContext.offSeeked(listener); // 需传入与监听时同一个的函数对象
移除音频暂停事件的监听函数
onPause 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onPause(listener);
InnerAudioContext.offPause(listener); // 需传入与监听时同一个的函数对象
移除音频停止事件的监听函数
onStop 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onStop(listener);
InnerAudioContext.offStop(listener); // 需传入与监听时同一个的函数对象
移除音频自然播放至结束的事件的监听函数
onEnded 传入的监听函数。不传此参数则移除所有监听函数。
const listener = function(res) {
console.log(res);
};
InnerAudioContext.onEnded(listener);
InnerAudioContext.offEnded(listener); // 需传入与监听时同一个的函数对象
注意: unity fmod 音频引擎针对 WebGL 平台实现有 bug