• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audiocapturer.h
2<!--Kit: Audio Kit-->
3<!--Subsystem: Multimedia-->
4<!--Owner: @songshenke-->
5<!--Designer: @caixuejiang; @hao-liangfei; @zhanganxiang-->
6<!--Tester: @Filger-->
7<!--Adviser: @zengyawen-->
8
9## 概述
10
11声明输入类型的音频流相关接口。
12
13**引用文件:** <ohaudio/native_audiocapturer.h>
14
15**库:** libohaudio.so
16
17**系统能力:** SystemCapability.Multimedia.Audio.Core
18
19**起始版本:** 10
20
21**相关模块:** [OHAudio](capi-ohaudio.md)
22
23## 汇总
24
25### 函数
26
27| 名称 | typedef关键字 | 描述 |
28| -- | -- | -- |
29| [OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)](#oh_audiocapturer_release) | - | 释放输入音频流。 |
30| [OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)](#oh_audiocapturer_start) | - | 启动音频采集器,开始获取音频数据。 |
31| [OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)](#oh_audiocapturer_pause) | - | 暂停输入音频流。 |
32| [OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)](#oh_audiocapturer_stop) | - | 停止音频采集器,停止输入音频流。 |
33| [OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)](#oh_audiocapturer_flush) | - | 丢弃获取的音频数据。 |
34| [OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)](#oh_audiocapturer_getcurrentstate) | - | 查询当前音频流状态。 |
35| [OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer, OH_AudioStream_LatencyMode* latencyMode)](#oh_audiocapturer_getlatencymode) | - | 查询当前音频流时延模式。 |
36| [OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)](#oh_audiocapturer_getstreamid) | - | 查询当前输入音频流ID。 |
37| [OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)](#oh_audiocapturer_getsamplingrate) | - | 查询当前输入音频流采样率。 |
38| [OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)](#oh_audiocapturer_getchannelcount) | - | 查询当前音频流通道数。 |
39| [OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer, OH_AudioStream_SampleFormat* sampleFormat)](#oh_audiocapturer_getsampleformat) | - | 查询当前输入音频流采样格式。 |
40| [OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer, OH_AudioStream_EncodingType* encodingType)](#oh_audiocapturer_getencodingtype) | - | 查询当前音频流编码类型。 |
41| [OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer, OH_AudioStream_SourceType* sourceType)](#oh_audiocapturer_getcapturerinfo) | - | 查询当前音频流工作场景类型。 |
42| [OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer, int32_t* frameSize)](#oh_audiocapturer_getframesizeincallback) | - | 在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。 |
43| [OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)](#oh_audiocapturer_gettimestamp) | - | 获取输入音频流时间戳和当前数据帧位置信息。<br> 该接口可以获取到音频通道实际录制位置(framePosition)以及录制到该位置时候的时间戳(timestamp),时间戳单位为纳秒。 |
44| [OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)](#oh_audiocapturer_getframesread) | - | 查询自创建流以来已读取的帧数。 |
45| [OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)](#oh_audiocapturer_getoverflowcount) | - | 查询当前录制音频流过载数。 |
46| [typedef void (\*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData, int32_t audioDataSize)](#oh_audiocapturer_onreaddatacallback) | OH_AudioCapturer_OnReadDataCallback | 读取音频数据的回调函数。 |
47| [typedef void (\*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData, OH_AudioDeviceDescriptorArray* deviceArray)](#oh_audiocapturer_ondevicechangecallback) | OH_AudioCapturer_OnDeviceChangeCallback | 音频录制流的设备变化事件回调函数。 |
48| [typedef void (\*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData, OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)](#oh_audiocapturer_oninterruptcallback) | OH_AudioCapturer_OnInterruptCallback | 音频录制流的中断事件回调函数。 |
49| [typedef void (\*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData, OH_AudioStream_Result error)](#oh_audiocapturer_onerrorcallback) | OH_AudioCapturer_OnErrorCallback | 音频录制流的错误事件回调函数。 |
50| [OH_AudioStream_Result OH_AudioCapturer_GetFastStatus(OH_AudioCapturer* capturer, OH_AudioStream_FastStatus* status)](#oh_audiocapturer_getfaststatus) | - | 获取音频录制过程中的运行状态,是否在低时延状态下工作。 |
51| [typedef void (\*OH_AudioCapturer_OnFastStatusChange)(OH_AudioCapturer* capturer, void* userData, OH_AudioStream_FastStatus status)](#oh_audiocapturer_onfaststatuschange) | OH_AudioCapturer_OnFastStatusChange | 音频录制过程中低时延状态改变事件的回调函数。 |
52
53## 函数说明
54
55### OH_AudioCapturer_Release()
56
57```
58OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)
59```
60
61**描述**
62
63释放输入音频流。
64
65**需要权限:** ohos.permission.MICROPHONE
66
67**起始版本:** 10
68
69
70**参数:**
71
72| 参数项 | 描述 |
73| -- | -- |
74| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
75
76**返回:**
77
78| 类型 | 说明 |
79| -- | -- |
80| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
81
82### OH_AudioCapturer_Start()
83
84```
85OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)
86```
87
88**描述**
89
90启动音频采集器,开始获取音频数据。
91
92**需要权限:** ohos.permission.MICROPHONE
93
94**起始版本:** 10
95
96
97**参数:**
98
99| 参数项 | 描述 |
100| -- | -- |
101| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
102
103**返回:**
104
105| 类型 | 说明 |
106| -- | -- |
107| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
108
109### OH_AudioCapturer_Pause()
110
111```
112OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)
113```
114
115**描述**
116
117暂停输入音频流。
118
119**需要权限:** ohos.permission.MICROPHONE
120
121**起始版本:** 10
122
123
124**参数:**
125
126| 参数项 | 描述 |
127| -- | -- |
128| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
129
130**返回:**
131
132| 类型 | 说明 |
133| -- | -- |
134| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
135
136### OH_AudioCapturer_Stop()
137
138```
139OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)
140```
141
142**描述**
143
144停止音频采集器,停止输入音频流。
145
146**需要权限:** ohos.permission.MICROPHONE
147
148**起始版本:** 10
149
150
151**参数:**
152
153| 参数项 | 描述 |
154| -- | -- |
155| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
156
157**返回:**
158
159| 类型 | 说明 |
160| -- | -- |
161| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
162
163### OH_AudioCapturer_Flush()
164
165```
166OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)
167```
168
169**描述**
170
171丢弃获取的音频数据。
172
173**起始版本:** 10
174
175
176**参数:**
177
178| 参数项 | 描述 |
179| -- | -- |
180| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
181
182**返回:**
183
184| 类型 | 说明 |
185| -- | -- |
186| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
187
188### OH_AudioCapturer_GetCurrentState()
189
190```
191OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)
192```
193
194**描述**
195
196查询当前音频流状态。
197
198**起始版本:** 10
199
200
201**参数:**
202
203| 参数项 | 描述 |
204| -- | -- |
205| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
206| [OH_AudioStream_State](capi-native-audiostream-base-h.md#oh_audiostream_state)* state | 指向一个用来接收音频流状态的变量。 |
207
208**返回:**
209
210| 类型 | 说明 |
211| -- | -- |
212| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
213
214### OH_AudioCapturer_GetLatencyMode()
215
216```
217OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer,OH_AudioStream_LatencyMode* latencyMode)
218```
219
220**描述**
221
222查询当前音频流时延模式。
223
224**起始版本:** 10
225
226
227**参数:**
228
229| 参数项 | 描述 |
230| -- | -- |
231| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
232| [OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode)* latencyMode | 指向一个用来接收音频流时延模式的变量。 |
233
234**返回:**
235
236| 类型 | 说明 |
237| -- | -- |
238| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
239
240### OH_AudioCapturer_GetStreamId()
241
242```
243OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)
244```
245
246**描述**
247
248查询当前输入音频流ID。
249
250**起始版本:** 10
251
252
253**参数:**
254
255| 参数项 | 描述 |
256| -- | -- |
257| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
258| uint32_t* streamId | 指向一个用来接收音频流ID的变量。 |
259
260**返回:**
261
262| 类型 | 说明 |
263| -- | -- |
264| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
265
266### OH_AudioCapturer_GetSamplingRate()
267
268```
269OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)
270```
271
272**描述**
273
274查询当前输入音频流采样率。
275
276**起始版本:** 10
277
278
279**参数:**
280
281| 参数项 | 描述 |
282| -- | -- |
283| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
284| int32_t* rate | 指向一个用来接收音频流采样率的变量。 |
285
286**返回:**
287
288| 类型 | 说明 |
289| -- | -- |
290| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
291
292### OH_AudioCapturer_GetChannelCount()
293
294```
295OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)
296```
297
298**描述**
299
300查询当前音频流通道数。
301
302**起始版本:** 10
303
304
305**参数:**
306
307| 参数项 | 描述 |
308| -- | -- |
309| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
310| int32_t* channelCount | 指向一个用来接收音频流通道数的变量。 |
311
312**返回:**
313
314| 类型 | 说明 |
315| -- | -- |
316| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
317
318### OH_AudioCapturer_GetSampleFormat()
319
320```
321OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer,OH_AudioStream_SampleFormat* sampleFormat)
322```
323
324**描述**
325
326查询当前输入音频流采样格式。
327
328**起始版本:** 10
329
330
331**参数:**
332
333| 参数项 | 描述 |
334| -- | -- |
335| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
336| [OH_AudioStream_SampleFormat](capi-native-audiostream-base-h.md#oh_audiostream_sampleformat)* sampleFormat | 指向一个用来接收音频流采样格式的变量。 |
337
338**返回:**
339
340| 类型 | 说明 |
341| -- | -- |
342| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
343
344### OH_AudioCapturer_GetEncodingType()
345
346```
347OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer,OH_AudioStream_EncodingType* encodingType)
348```
349
350**描述**
351
352查询当前音频流编码类型。
353
354**起始版本:** 10
355
356
357**参数:**
358
359| 参数项 | 描述 |
360| -- | -- |
361| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
362| [OH_AudioStream_EncodingType](capi-native-audiostream-base-h.md#oh_audiostream_encodingtype)* encodingType | 指向一个用来接收音频流编码类型的变量。 |
363
364**返回:**
365
366| 类型 | 说明 |
367| -- | -- |
368| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
369
370### OH_AudioCapturer_GetCapturerInfo()
371
372```
373OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer,OH_AudioStream_SourceType* sourceType)
374```
375
376**描述**
377
378查询当前音频流工作场景类型。
379
380**起始版本:** 10
381
382
383**参数:**
384
385| 参数项 | 描述 |
386| -- | -- |
387| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
388| [OH_AudioStream_SourceType](capi-native-audiostream-base-h.md#oh_audiostream_sourcetype)* sourceType | 指向一个用来接收输入类型音频流的工作场景的变量。 |
389
390**返回:**
391
392| 类型 | 说明 |
393| -- | -- |
394| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
395
396### OH_AudioCapturer_GetFrameSizeInCallback()
397
398```
399OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer,int32_t* frameSize)
400```
401
402**描述**
403
404在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。
405
406**起始版本:** 10
407
408
409**参数:**
410
411| 参数项 | 描述 |
412| -- | -- |
413| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
414| int32_t* frameSize | 指向将为帧大小设置的变量的指针。 |
415
416**返回:**
417
418| 类型 | 说明 |
419| -- | -- |
420| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
421
422### OH_AudioCapturer_GetTimestamp()
423
424```
425OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)
426```
427
428**描述**
429
430获取输入音频流时间戳和当前数据帧位置信息。<br> 该接口可以获取到音频通道实际录制位置(framePosition)以及录制到该位置时候的时间戳(timestamp),时间戳单位为纳秒。
431
432**起始版本:** 10
433
434
435**参数:**
436
437| 参数项 | 描述 |
438| -- | -- |
439| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
440| clockid_t clockId | 时钟标识符,使用CLOCK_MONOTONIC。 |
441| int64_t* framePosition | 指向要接收位置的变量的指针。 |
442| int64_t* timestamp | 指向接收时间戳的变量的指针。 |
443
444**返回:**
445
446| 类型 | 说明 |
447| -- | -- |
448| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数capturer为nullptr;<br>                                                 2. 参数clockId无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
449
450### OH_AudioCapturer_GetFramesRead()
451
452```
453OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)
454```
455
456**描述**
457
458查询自创建流以来已读取的帧数。
459
460**起始版本:** 10
461
462
463**参数:**
464
465| 参数项 | 描述 |
466| -- | -- |
467| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
468| int64_t* frames | 指向将为帧计数设置的变量的指针。 |
469
470**返回:**
471
472| 类型 | 说明 |
473| -- | -- |
474| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
475
476### OH_AudioCapturer_GetOverflowCount()
477
478```
479OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)
480```
481
482**描述**
483
484查询当前录制音频流过载数。
485
486**起始版本:** 12
487
488
489**参数:**
490
491| 参数项 | 描述 |
492| -- | -- |
493| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
494| uint32_t* count | 指向一个用来接收音频流过载数的变量的指针。 |
495
496**返回:**
497
498| 类型 | 说明 |
499| -- | -- |
500| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。 |
501
502### OH_AudioCapturer_OnReadDataCallback()
503
504```
505typedef void (*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData,int32_t audioDataSize)
506```
507
508**描述**
509
510读取音频数据的回调函数。
511
512**起始版本:** 20
513
514
515**参数:**
516
517| 参数项 | 描述 |
518| -- | -- |
519| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
520|  void* userData | 指向应用自定义的数据存储区域。 |
521|  void* audioData | 指向录制数据存储区域,用于应用填充录制数据。 |
522| int32_t audioDataSize | 录制数据的长度。 |
523
524### OH_AudioCapturer_OnDeviceChangeCallback()
525
526```
527typedef void (*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioDeviceDescriptorArray* deviceArray)
528```
529
530**描述**
531
532音频录制流的设备变化事件回调函数。
533
534**起始版本:** 20
535
536
537**参数:**
538
539| 参数项 | 描述 |
540| -- | -- |
541| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
542|  void* userData | 指向应用自定义的数据存储区域。 |
543| [OH_AudioDeviceDescriptorArray](capi-ohaudio-oh-audiodevicedescriptorarray.md)* deviceArray | 音频设备描述符数组。 |
544
545### OH_AudioCapturer_OnInterruptCallback()
546
547```
548typedef void (*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)
549```
550
551**描述**
552
553音频录制流的中断事件回调函数。
554
555**起始版本:** 20
556
557
558**参数:**
559
560| 参数项 | 描述 |
561| -- | -- |
562| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
563|  void* userData | 指向应用自定义的数据存储区域。 |
564| [OH_AudioInterrupt_ForceType](capi-native-audiostream-base-h.md#oh_audiointerrupt_forcetype) type | 音频流中断类型。 |
565|  [OH_AudioInterrupt_Hint](capi-native-audiostream-base-h.md#oh_audiointerrupt_hint) hint | 音频流中断提示类型。 |
566
567### OH_AudioCapturer_OnErrorCallback()
568
569```
570typedef void (*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData,OH_AudioStream_Result error)
571```
572
573**描述**
574
575音频录制流的错误事件回调函数。
576
577**起始版本:** 20
578
579
580**参数:**
581
582| 参数项 | 描述 |
583| -- | -- |
584| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
585|  void* userData | 指向应用自定义的数据存储区域。 |
586| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) error | 音频流录制错误结果。 |
587
588### OH_AudioCapturer_GetFastStatus()
589
590```
591OH_AudioStream_Result OH_AudioCapturer_GetFastStatus(OH_AudioCapturer* capturer,OH_AudioStream_FastStatus* status)
592```
593
594**描述**
595
596获取音频录制过程中的运行状态,是否在低时延状态下工作。
597
598**起始版本:** 20
599
600
601**参数:**
602
603| 参数项 | 描述 |
604| -- | -- |
605| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
606| [OH_AudioStream_FastStatus](capi-native-audiostream-base-h.md#oh_audiostream_faststatus)* status | 指向接收低时延状态的指针。 |
607
608**返回:**
609
610| 类型 | 说明 |
611| -- | -- |
612| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常,仅在释放状态之前可用。 |
613
614### OH_AudioCapturer_OnFastStatusChange()
615
616```
617typedef void (*OH_AudioCapturer_OnFastStatusChange)(OH_AudioCapturer* capturer,void* userData,OH_AudioStream_FastStatus status)
618```
619
620**描述**
621
622音频录制过程中低时延状态改变事件的回调函数。
623
624**起始版本:** 20
625
626
627**参数:**
628
629| 参数项 | 描述 |
630| -- | -- |
631| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
632| void* userData | 指向应用自定义的数据存储区域。 |
633| [OH_AudioStream_FastStatus](capi-native-audiostream-base-h.md#oh_audiostream_faststatus) status | 返回当前低时延状态。 |
634
635
636