Recorder
– 音频录制引擎¶
Recorder模块实现HaaS平台的音频录制功能,具体接口和参数如下所示。
调用Recorder接口之前,你需要先完成声卡及Audio引擎的初始化工作,具体接口请参考 Snd
模块
使用示例¶
函数接口¶
Recorder模块具体接口和参数。
-
Recorder.
set_sink
(format, rate, channels, bits, frames, bitrate, sink)[源代码]¶ 请求录音资源并设置录音参数。
- 参数
format(int) –
录音数据编码格式, 可以选择的类型为:
-
enum
media_format_t
MEDIA_FMT_UNKNOWN = 0,
MEDIA_FMT_PCM,
MEDIA_FMT_WAV,
MEDIA_FMT_MP3,
MEDIA_FMT_AAC,
MEDIA_FMT_M4A,
MEDIA_FMT_OGG,
MEDIA_FMT_OPS,
MEDIA_FMT_SPX,
MEDIA_FMT_WMA,
MEDIA_FMT_AMR,
MEDIA_FMT_AMRWB,
MEDIA_FMT_FLAC,
-
enum
rate(int) – 采样率,支持采样率包括但不限于:8K, 16K,24K
channels(int) – 声道数,取值为1或者2
bits(int) – 数据宽度,取值为16,24,32, 通常取值为16
frame_samples(int) – 帧长度, 每次录音期待读取的数据
sink(str) – 保存路径,对于录音到缓存中的场景,sink设置 None 即可。
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL
-
Recorder.
get_stream
(buffer, nbytes)[源代码]¶ 读取指定长度的录音数据并保存到buffer中。
- 参数
buffer(bytearray) – 音频存放的位置
nbytes(int) – 期待读取的音频字节数
- 返回
实际读取到的音频数据字节数,不大于nbytes;负数代表读取失败。
- 引发
OSError – EINVAL
-
Recorder.
get_state
()[源代码]¶ 获取录音引擎状态。
- 参数
空 –
- 返回
录音音频状态,可以选择的类型为:
-
enum
recorder_state_t
¶ RECORDER_STAT_IDLE = 0,
RECORDER_STAT_READY,
RECORDER_STAT_RUNNING,
RECORDER_STAT_STOP,
RECORDER_STAT_ERROR,
-
enum
- 引发
OSError – EINVAL
-
Recorder.
ns_enable
(enable)[源代码]¶ 是否使能音频降噪NS(Noise Suppression)功能。
- 参数
enable(int) – 1为允许使能,0为禁止使能
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL
-
Recorder.
ec_enable
(enable)[源代码]¶ 是否使能回声消除EC(Echo Cancle)功能。
- 参数
enable(int) – 1为允许使能,0为禁止使能
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL
-
Recorder.
agc_enable
(enable)[源代码]¶ 是否使能自动增益控制AGC(Auto Gain Control)功能。
- 参数
enable(int) – 1为允许使能,0为禁止使能
- 返回
0: 成功,其他: 失败
- 引发
OSError – EINVAL