教程 框架 组件 接口 工具 其他

录音 record 1000+

接口声明

{ "name": "system.record" }

导入模块

import record from '@system.record'const record = require('@system.record')

接口定义

record.start(OBJECT)

开始录音。

权限要求

录音

参数:

参数名类型必填说明
duration 1010+Number录音时长,单位为 ms。如果 duration 为有效值将在达到指定值时停止录音
sampleRate 1010+Number采样率。不同的音频格式所支持的采样率范围不同。对于 aac 格式,默认设置为 8000,建议使用 8000/16000/44100
numberOfChannels 1010+Number录音通道数,有效值 1/2
encodeBitRate 1010+Number编码码率。编码码率的取值与采样率和音频格式有关。对 aac 格式,建议按照下表中取值范围来选择编码码率
frameSize 1200+NumberPCM音频数据帧大小,单位 Byte。传入 frameSize 后,每录制指定帧大小的内容后,会通过 onframerecorded 回调录制的文件内容,不指定则不会回调。
注意回调帧数据大小不一定是设置的frameSize,有可能会调整为一个合适的值 。
format 1010+String音频格式,有效值 3gpp/amr_nb/aac/pcm(1200+)。缺省为 3gpp。使用pcm格式时,如不指定 frameSize 参数,则不会回调onframerecorded。
successFunction成功回调
failFunction失败回调
completeFunction执行结束后的回调
aac 格式采样率及码率建议值对应表:
采样率编码码率
800016000 ~ 48000
1600024000 ~ 96000
4410064000 ~ 320000
success 返回值:
参数名类型说明
uriString录音文件的存储路径,在应用的缓存目录中
fail 返回错误代码
错误码说明
201用户拒绝授权,获取录音权限失败
202 1200+参数错误。如指定 bufferSize 参数 > 0 时,format 不为 pcm 格式则返回此错误
207 1100+用户拒绝并勾选不再询问复选框

示例:

record.start({
  duration: 10000,
  sampleRate: 8000,
  numberOfChannels: 1,
  encodeBitRate: 16000,
  //frameSize:1024,
  //format: 'pcm',
  format: 'aac',
  success: function(data) {
    console.log(`handling success: ${data.uri}`)
  },
  fail: function(data, code) {
    console.log(`handling fail, code = ${code}, errorMsg=${data}`)
  }
})

record.onframerecorded = function(data) 1200+

监听已录制完指定帧大小的文件事件。如果设置了 frameSize,则会回调此事件。

参数

无。

data 返回值:

属性类型说明
frameBufferArrayBuffer录制的音频数据帧。通常音频数据帧大小为指定的 bufferSize,但是如果指定的 bufferSize 太小则会自动调整为一个合适的大小。
isLastFrameboolean是否是最后一帧数据。

示例:

record.onframerecorded = function (res){     
  //获取音频数据:res.frameBuffer
  //是否是最后一帧:res.isLastFrame 
}

record.stop(OBJECT)

停止录音。

参数:

示例:

record.stop()

后台运行限制

manifest 中申请后可用。
后台运行详细用法参见后台运行 脚本

条匹配 "" 的结果

    没有搜索到与 "" 相关的内容