wx.createInnerAudioContext(Object object)

Promise 风格 调用:支持

通过js创建一个原生音频播放器对象实例InnerAudioContext。

参数

Object object

属性 类型 默认值 必填 说明
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)

实例的属性

string src

需要播放的音频Url地址,支持远程地址,支持音频格式见注意事项

number startTime

音频开始播放的位置(以秒计),默认为0

boolean loop

true:每当音频结束时重新开始播放,默认为false

number volume

设置音频的当前音量,范围0~1,默认1

number playbackRate

设置音频的播放速度(Android需要6.0及以上版本),范围0.5-2.0,默认1

实例的方法

InnerAudioContext.play(function)

播放音频

function返回字段示例

//播放器对象创建结果回调

data:{
"playerId": "PID2114453524",
"type":"onCreated",
"duration": 30,
"buffered": 1
}

//播放器开始/继续播放时回调

data:{
"playerId": "PID2114453524",
"type":"onPlay",
"duration": 30,
"startTime": 10,
"currentTime": 20

}

//播放器暂停播放时回调

data:{
"playerId": "PID2114453524",
"type":"onPause",
"duration": 30,
"startTime": 10,
"currentTime": 20
}

//播放器停止播放时回调

data:{
"playerId": "PID2114453524",
"type":"onStop",
"duration": 30
}

//播放器结束播放时回调

data:{
"playerId": "PID2114453524",
"type":"onEnd",
"duration": 30

}

//播放器播放进度跳转完成时回调

data:{
"playerId": "PID2114453524",
"type":"onSeeked",
"duration": 30,
"currentTime": 20
}

//播放器缓冲进度更新时回调

data:{
"playerId": "PID2114453524",
"type":"onBuffered",
"buffered": 20

}

//播放器播放进度更新时回调

data:{
"playerId": "PID2114453524",
"type":"onTimeUpdate",
"duration": 30,
"startTime": 10,
"currentTime": 20
}

//播放器播放错误时回调

data:{
"playerId": "PID2114453524",
"type":"onError",
"errMsg": "网络错误",
"errCode": 10002
}

返回值说明

字段名 字段类型 说明
playerId string 播放器对象句柄
type string 当前回调类型,onPlay表示播放器开始/继续播放,onPause表示播放器暂停播放,onStop表示播放器停止播放,onEnd表示播放器正常播放结束,onTimeUpdate表示播放器进度更新,onSeeked表示播放器进度跳转完成,onBurrered表示播放器缓冲中,onError表示播放器播放错误(注意:1、loop为true情况下,android正常播放结束不会回调onEnd 2、loop为false情况下,android正常播放结束会回调onSeeked)
duration number 当前音频的长度(以秒计),只有在当前有合法的src时返回
buffered number 音频缓冲的时间点,仅保证当前播放时间点到此时间点内容已缓冲(以百分比形式,范围0-100)(安卓只在加载远程音频资源时才会返回)
startTime number 音频开始播放的位置(以秒计),默认为0
currentTime number 音频的当前播放位置(以秒计),只有在当前有合法的 src 时返回
errCode number type为onError时返回,表示播放器错误码,10001:系统错误,10002:网络错误,10003:文件错误,10004:格式错误,-1:未知错误(注意:1、当前安卓系统播放器报错信息无法做到具体分类,统一返回10001:系统错误 2、ios不支持针对1.txt通过修改改后缀名为音频源文件1.mp3的类似情况)
errMsg string type为onError时返回,表示播放器具体错误信息

InnerAudioContext.pause()

暂停音频

InnerAudioContext.stop()

停止播放音频

InnerAudioContext.destroy()

销毁播放器

示例代码

const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.src = 'https://www.w3school.com.cn/i/song.mp3';
innerAudioContext.startTime=3;
innerAudioContext.loop=true;
innerAudioContext.volume=0.5;
innerAudioContext.playbackRate=2;
innerAudioContext.play((data)=>{
conosole.log(data.currentTime)
});
...
InnerAudioContext.pause();
...
InnerAudioContext.stop();
...
InnerAudioContext.destroy()

注意事项

1、音频支持格式:

格式 ios android
m4a 不支持 支持
ogg 不支持 支持
wav 不支持 支持
mp3 支持 支持
mp4 支持 支持
aac 支持 支持

2.需要在APP的config.js配置文件中做以下配置:

module.exports = {
plugins:{
"audio": {}
}
};

3.暂停后的音频再播放会从暂停处开始播放,停止后的音频再播放会从startTime开始播放