# Audio 音频
方法
- createRecorder 创建当前设备的录音对象
- getAudioInfo 根据录音批次号获取录音信息
- createPlayer 创建音频播放对象
对象
- AudioRecorder 音频录制对象
- AudioPlayer 音频播放对象
- RecorderState 音频录制状态
- PlayerState 音频播放状态
- AudioFragment 音频分段信息
# createRecorder
创建当前设备的录音对象 (使用系统的录音服务)
参数说明
参数名 类型 必填 说明 options RecorderOptions 是 音频录制详细参数,详见下表 successCB Function 可选 音频录制完成回调函数,当音频录制完成时触发,成功或失败都会触发 errorCB Function 可选 音频录制创建录音对象失败触发的回调函数 RecorderOptions参数
参数名 类型 必填 说明 saveDir String 否 录音文件保存目录,默认值:_doc/audio/[taskId] limitDuration Number 否 录制最长时间限制,单位毫秒(ms); 0表示无限制;默认值为0 fragmentDuration Number 否 录音分段时长,单位毫秒(ms);默认值:600000(即10分钟); sampleRate Number 否 采样率,可选值:8000/16000/44100;默认值44100 encodeBitRate Number 否 编码码率,可选值,采样率/编码效率,8000(16000 ~ 48000)、16000(24000 ~ 96000)、44100(64000 ~ 320000);默认值:64000 numberOfChannels Number 否 录音通道数,可选值:1/2;默认值2 format String 否 音频格式,有效值 wav(目前仅支持wav) successCB 返回参数说明
参数 类型 说明 recorder AudioRecorder 录音对象 示例代码
// 创建录音对象
let options = {};
let recorder = foxsdk.audio.createRecorder(
options,
recorder => {
foxsdk.logger.info('audio/recorder/index.vue===录制任务完成回调===\n' + JSON.stringify(recorder));
},
retObj => {
let { status, message, payload } = retObj;
foxsdk.logger.debug('====audio/recorder/index.vue===录制任务创建失败回调===: \n status: ' + status + ',\n message: ' + message + ',\n payload: ' + payload);
}
);
// 开始录音
recorder.start();
# getAudioInfo
根据录音批次号获取相对应的录音信息
参数说明
参数名 类型 必填 说明 taskId String 是 录音任务Id(createRecorder返回的参数) successCb Function 否 回调函数 successCb 返回参数说明
参数 类型 说明 fragments Array[AudioFragment] 录音分段信息 示例代码
let taskId = 'artask1';
foxsdk.audio.getAudioInfo(taskId, retObj => {
let { status, message, payload } = retObj;
foxsdk.logger.debug('====audio-getAudioInfo====: \n status: ' + status + ',\n message: ' + message + ',\n payload: ' + payload);
});
# createPlayer
创建音频播放对象 (系统的音频服务)
参数说明
参数名 类型 必填 说明 options PlayerOptions 是 音频播放详细参数,详见下表 successCB Function 可选 音频播放完成回调函数,当音频播放完成时触发,成功或失败都会触发 errorCB Function 可选 音频播放创建对象失败触发的回调函数 PlayerOptions参数
参数名 类型 必填 说明 fragments Array[String] 是 音频分段路径;按照顺序播放;示例:["_doc/audio/1233434.wav", "_doc/audio/123we4.wav", "_doc/audio/12trtrt4.wav"];目前仅支持格式:wav mode String 否 播放类型,有效值:Phone/Speaker(听筒/扬声器);默认值:Phone(听筒) duration Number 否 播放进度回调时间间隔,单位ms,默认1000ms; successCB 返回参数说明
参数 类型 说明 player AudioPlayer 播放对象 示例代码
let options = {
fragments: [
'_doc/audio/aptask0/fragments0.wav'
],
mode: 'Speaker',
duration: 100
};
// 创建播放对象
let player = foxsdk.audio.createPlayer(
options,
player => {
foxsdk.logger.info('audio/player/index.vue===播放任务完成回调===\n' + JSON.stringify(player));
},
retObj => {
let { status, message, payload } = retObj;
foxsdk.logger.debug('====audio/player/index.vue===播放任务创建失败回调===: \n status: ' + status + ',\n message: ' + message + ',\n payload: ' + payload);
}
);
// 开始播放
player.start();
# AudioRecorder
- 属性
taskId
:录音批次号,自动生成saveDir
:录音文件保存目录,默认值:_doc/audio/[taskId]limitDuration
:录制最长时间限制,单位毫秒(ms); 0表示无限制;默认值0fragmentDuration
:录音分段时长,单位毫秒(ms);默认值:600000(即10分钟);sampleRate
:采样率,可选值:8000/16000/44100;默认值44100encodeBitRate
:编码码率,可选值,采样率/编码效率,8000(16000 ~ 48000)、16000(24000 ~ 96000)、44100(64000 ~ 320000);默认值:64000numberOfChannels
:录音通道数,可选值:1/2;默认值2format
:音频格式,有效值 wav,默认值wavstate
:音频录制状态,0 未开始,1 录音中,2 暂停,3播放结束fragments
:所有录音分段信息,Array[AudioFragment]lastFragment
:最新录制完成的分段信息options
: 录制对象创建时的参数totalTime
: 文件的总时长mstotalSize
: 文件的总大小byte
- 方法
- start 开始音频录制
- pause 暂停音频录制
- resume 恢复音频录制
- stop 结束音频录制
- onRecordListener 监听音频录制
# start
开始音频录制
- 示例代码 请先创建录音对象,创建录音对象
// let recorder = foxsdk.audio.createRecorder(options, completeCb);
recorder.start();
# pause
暂停音频录制
- 示例代码 请先创建录音对象,创建录音对象
// let recorder = foxsdk.audio.createRecorder(options, completeCb);
recorder.pause();
# resume
开始音频录制
- 示例代码 请先创建录音对象,创建录音对象
// let recorder = foxsdk.audio.createRecorder(options, completeCb);
recorder.resume();
# stop
结束音频录制
- 示例代码 请先创建录音对象,创建录音对象
// let recorder = foxsdk.audio.createRecorder(options, completeCb);
recorder.stop();
# onRecordListener
监听音频录制,当录制完成一段时就触发
参数说明
参数名 类型 必填 说明 onRecordListener Function 是 监听音频录制回调 onRecordListener 返回参数说明
参数 类型 说明 record AudioRecorder 音频录制对象 示例代码 请先创建录音对象,创建录音对象
// let recorder = foxsdk.audio.createRecorder(options, completeCb);
recorder.onRecordListener = recorder => {
foxsdk.logger.info('audio/recorder/index.vue===音频录制监听回调===\n' + JSON.stringify(recorder));
}
# AudioPlayer
- 属性
taskId
:播放批次号,自动生成fragments
:音频分段路径;按照顺序播放;示例:["_doc/audio/1233434.mp3", "_doc/audio/123we4.mp3", "_doc/audio/12trtrt4.mp3"]mode
:播放类型,有效值:Phone/Speaker(听筒/扬声器)duration
:播放进度回调时间间隔,单位ms,默认100ms;seek
:当前播放位置,毫秒state
:播放状态,0 未开始,1 播放中,2 暂停,3播放结束options
: 播放对象创建时的参数totalTime
: 文件的总时长mstotalSize
: 文件的总大小byte
- 方法
# player.start
开始音频播放
- 示例代码 请先创建音频播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.start();
# player.pause
暂停音频播放
- 示例代码 请先创建音频播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.pause();
# player.resume
恢复音频播放
- 示例代码 请先创建音频播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.resume();
# player.stop
结束音频播放
- 示例代码 请先创建音频播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.stop();
# player.onProgress
监听音频播放,当播放完成一段时就触发
参数说明
参数名 类型 必填 说明 onProgress Function 是 监听音频播放回调 onPlayerCb 返回参数说明
参数 类型 说明 player AudioPlayer 音频播放对象 示例代码 请先创建播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.onProgress = player => {
foxsdk.logger.info('audio/player/index.vue===音频播放监听回调===\n' + JSON.stringify(player));
}
# player.seekTo
监听音频播放,当播放完成一段时就触发
参数说明
参数名 类型 必填 说明 taskId String 是 任务唯一标识;同时只能存在一个播放任务 position Number 是 跳转到指定位置,单位 ms seekTo Function 是 监听音频播放回调 onPlayerCb 返回参数说明
参数 类型 说明 player AudioPlayer 音频播放对象 示例代码 请先创建播放对象,创建播放对象
// let player = foxsdk.audio.createPlayer(options, completeCb);
player.seekTo = player => {
foxsdk.logger.info('audio/player/index.vue===音频设置播放时间===\n' + JSON.stringify(player));
}
# RecorderState
音频录制状态,如:foxsdk.audio.RecorderState.Wait
- 常量
/**
* 音频录制状态
*/
const RecorderState = {
/**
* 未开始
*/
Wait: 0,
/**
* 录制中
*/
Process: 1,
/**
* 暂停
*/
Pause: 2,
/**
* 录制结束
*/
Done: 3
};
# PlayerState
音频播放状态,如:foxsdk.audio.PlayerState.Wait
- 常量
/**
* 音频播放状态
*/
const PlayerState = {
/**
* 未开始
*/
Wait: 0,
/**
* 播放中
*/
Process: 1,
/**
* 暂停
*/
Pause: 2,
/**
* 播放结束
*/
Done: 3
};
# AudioFragment
音频录制分段信息
- 属性
order
:当前段排序位置format
:音频格式size
:录音文件大小单位B(byte)path
:录音文件大小本地相对路径duration
:录音时长,单位ms