1# * coding: UTF8 *
2"""
3Recorder模块具体接口和参数。
4
5==========================================================================================
6
7"""
8
9def set_sink(format, rate, channels, bits, frames, bitrate, sink):
10   """
11   请求录音资源并设置录音参数。
12
13   :param format(int): 录音数据编码格式, 可以选择的类型为:
14
15      .. c:enum:: media_format_t
16
17         MEDIA_FMT_UNKNOWN = 0,
18
19         MEDIA_FMT_PCM,
20
21         MEDIA_FMT_WAV,
22
23         MEDIA_FMT_MP3,
24
25         MEDIA_FMT_AAC,
26
27         MEDIA_FMT_M4A,
28
29         MEDIA_FMT_OGG,
30
31         MEDIA_FMT_OPS,
32
33         MEDIA_FMT_SPX,
34
35         MEDIA_FMT_WMA,
36
37         MEDIA_FMT_AMR,
38
39         MEDIA_FMT_AMRWB,
40
41         MEDIA_FMT_FLAC,
42   :param rate(int): 采样率,支持采样率包括但不限于:8K, 16K,24K
43   :param channels(int): 声道数,取值为1或者2
44   :param bits(int): 数据宽度,取值为16,24,32, 通常取值为16
45   :param frame_samples(int): 帧长度, 每次录音期待读取的数据
46   :param sink(str): 保存路径,对于录音到缓存中的场景,sink设置NULL即可。
47
48   :returns: 0: 成功,其他: 失败
49   :raises OSError: EINVAL
50   """
51   pass
52
53def clr_sink():
54   """
55   释放录音资源。
56
57   :param 空:
58   :returns: 0: 成功,其他: 失败
59   :raises OSError: EINVAL
60   """
61   pass
62
63def start():
64   """
65   开始录音。
66
67   :param 空:
68   :returns: 0: 成功,其他: 失败
69   :raises OSError: EINVAL
70   """
71   pass
72
73def stop():
74   """
75   停止录音。
76
77   :param 空:
78   :returns: 0: 成功,其他: 失败
79   :raises OSError: EINVAL
80   """
81   pass
82
83def get_stream(buffer, nbytes):
84   """
85   读取指定长度的录音数据并保存到buffer中。
86
87   :param buffer(bytearray): 音频存放的位置
88   :param nbytes(int): 期待读取的音频字节数
89   :returns: 实际读取到的音频数据字节数,不大于nbytes;负数代表读取失败。
90   :raises OSError: EINVAL
91   """
92   pass
93
94def get_state():
95   """
96   获取录音引擎状态。
97
98   :param 空:
99   :returns: 录音音频状态,可以选择的类型为:
100
101      .. c:enum::  recorder_state_t
102
103            RECORDER_STAT_IDLE = 0,
104
105            RECORDER_STAT_READY,
106
107            RECORDER_STAT_RUNNING,
108
109            RECORDER_STAT_STOP,
110
111            RECORDER_STAT_ERROR,
112   :raises OSError: EINVAL
113   """
114   pass
115
116def get_position():
117   """
118   获取录音进度,单位为秒。
119
120   :param 空:
121   :returns: int类型,当前录音进度
122   :raises OSError: EINVAL
123   """
124   pass
125
126def ns_enable(enable):
127   """
128   是否使能音频降噪NS(Noise Suppression)功能。
129
130   :param enable(int): 1为允许使能,0为禁止使能
131   :returns: 0: 成功,其他: 失败
132   :raises OSError: EINVAL
133   """
134   pass
135
136def ec_enable(enable):
137   """
138   是否使能回声消除EC(Echo Cancle)功能。
139
140   :param enable(int): 1为允许使能,0为禁止使能
141   :returns: 0: 成功,其他: 失败
142   :raises OSError: EINVAL
143   """
144   pass
145
146def agc_enable(enable):
147   """
148   是否使能自动增益控制AGC(Auto Gain Control)功能。
149
150   :param enable(int): 1为允许使能,0为禁止使能
151   :returns: 0: 成功,其他: 失败
152   :raises OSError: EINVAL
153   """
154   pass
155
156def vad_enable(enable):
157   """
158   是否使能语音活性检测VAD(Voice Activity Detection)功能。
159
160   :param enable(int): 1为允许使能,0为禁止使能
161   :returns: 0: 成功,其他: 失败
162   :raises OSError: EINVAL
163   """
164   pass
165
166def format_support(format):
167   """
168   设置播放器支持的音源类型。
169
170   :param format(int): 音源类型,具体内容参考 ``set_sink``
171   :returns: 0: 成功,其他: 失败。
172   :raises OSError: EINVAL
173   """
174   pass
175