# Audio 音频

# 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表示无限制;默认值0
    • fragmentDuration:录音分段时长,单位毫秒(ms);默认值:600000(即10分钟);
    • sampleRate:采样率,可选值:8000/16000/44100;默认值44100
    • encodeBitRate:编码码率,可选值,采样率/编码效率,8000(16000 ~ 48000)、16000(24000 ~ 96000)、44100(64000 ~ 320000);默认值:64000
    • numberOfChannels:录音通道数,可选值:1/2;默认值2
    • format:音频格式,有效值 wav,默认值wav
    • state:音频录制状态,0 未开始,1 录音中,2 暂停,3播放结束
    • fragments:所有录音分段信息,Array[AudioFragment]
    • lastFragment:最新录制完成的分段信息
    • options: 录制对象创建时的参数
    • totalTime: 文件的总时长ms
    • totalSize: 文件的总大小byte
  • 方法

# 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: 文件的总时长ms
    • totalSize: 文件的总大小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
Last Updated: 11/13/2023, 10:26:37 AM