• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audiocapturer.h
2
3## Overview
4
5The file declares the functions related to an audio capturer.
6
7**File to include**: <ohaudio/native_audiocapturer.h>
8
9**Library**: libohaudio.so
10
11**System capability**: SystemCapability.Multimedia.Audio.Core
12
13**Since**: 10
14
15**Related module**: [OHAudio](capi-ohaudio.md)
16
17## Summary
18
19### Functions
20
21| Name| typedef Keyword| Description|
22| -- | -- | -- |
23| [OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)](#oh_audiocapturer_release) | - | Releases an audio capturer.|
24| [OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)](#oh_audiocapturer_start) | - | Starts an audio capturer to start capturing audio data.|
25| [OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)](#oh_audiocapturer_pause) | - | Pauses an audio capturer.|
26| [OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)](#oh_audiocapturer_stop) | - | Stops an audio capturer, ceasing the input audio stream.|
27| [OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)](#oh_audiocapturer_flush) | - | Flushes audio data captured by an audio capturer.|
28| [OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)](#oh_audiocapturer_getcurrentstate) | - | Obtains the state of an audio capturer.|
29| [OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer,OH_AudioStream_LatencyMode* latencyMode)](#oh_audiocapturer_getlatencymode) | - | Obtains the latency mode of an audio capturer.|
30| [OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)](#oh_audiocapturer_getstreamid) | - | Obtains the stream ID of an audio capturer.|
31| [OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)](#oh_audiocapturer_getsamplingrate) | - | Obtains the sampling rate of an audio capturer.|
32| [OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)](#oh_audiocapturer_getchannelcount) | - | Obtains the number of channels for an audio capturer.|
33| [OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer,OH_AudioStream_SampleFormat* sampleFormat)](#oh_audiocapturer_getsampleformat) | - | Obtains the sampling format of an audio capturer.|
34| [OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer,OH_AudioStream_EncodingType* encodingType)](#oh_audiocapturer_getencodingtype) | - | Obtains the encoding type of an audio capturer.|
35| [OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer,OH_AudioStream_SourceType* sourceType)](#oh_audiocapturer_getcapturerinfo) | - | Obtains the usage scenario of an audio capturer.|
36| [OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer,int32_t* frameSize)](#oh_audiocapturer_getframesizeincallback) | - | Obtains the frame size in the callback. The frame size is the fixed length of the buffer returned by each callback.|
37| [OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)](#oh_audiocapturer_gettimestamp) | - | Obtains the information about the input audio stream timestamp and the current data frame position.<br>This function obtains the actual recording position (specified by **framePosition**) of the audio channel and the timestamp when recording to that position (specified by **timestamp**, in nanoseconds). |
38| [OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)](#oh_audiocapturer_getframesread) | - | Obtains the number of frames that have been read since the stream was created.|
39| [OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)](#oh_audiocapturer_getoverflowcount) | - | Obtains the number of overloaded audio streams of an audio capturer.|
40| [typedef void (\*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData,int32_t audioDataSize)](#oh_audiocapturer_onreaddatacallback) | OH_AudioCapturer_OnReadDataCallback | Defines the callback used to read audio data.|
41| [typedef void (\*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioDeviceDescriptorArray* deviceArray)](#oh_audiocapturer_ondevicechangecallback) | OH_AudioCapturer_OnDeviceChangeCallback | Defines the callback for audio capturer device change events.|
42| [typedef void (\*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)](#oh_audiocapturer_oninterruptcallback) | OH_AudioCapturer_OnInterruptCallback | Defines the callback for interruption events of an audio capturer.|
43| [typedef void (\*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData,OH_AudioStream_Result error)](#oh_audiocapturer_onerrorcallback) | OH_AudioCapturer_OnErrorCallback | Defines the callback for error events of an audio capturer.|
44| [OH_AudioStream_Result OH_AudioCapturer_GetFastStatus(OH_AudioCapturer* capturer,OH_AudioStream_FastStatus* status)](#oh_audiocapturer_getfaststatus) | - | Obtains the running status of an audio capturer to determine whether it is running in low-latency mode.|
45| [typedef void (\*OH_AudioCapturer_OnFastStatusChange)(OH_AudioCapturer* capturer,void* userData,OH_AudioStream_FastStatus status)](#oh_audiocapturer_onfaststatuschange) | OH_AudioCapturer_OnFastStatusChange | Defines a callback function for low-latency status changes during audio recording.|
46
47## Function Description
48
49### OH_AudioCapturer_Release()
50
51```
52OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer* capturer)
53```
54
55**Description**
56
57Releases an audio capturer.
58
59**Required permissions**: ohos.permission.MICROPHONE
60
61**Since**: 10
62
63
64**Parameters**
65
66| Name| Description|
67| -- | -- |
68| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
69
70**Returns**
71
72| Type| Description|
73| -- | -- |
74| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
75
76### OH_AudioCapturer_Start()
77
78```
79OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer* capturer)
80```
81
82**Description**
83
84Starts an audio capturer to start capturing audio data.
85
86**Required permissions**: ohos.permission.MICROPHONE
87
88**Since**: 10
89
90
91**Parameters**
92
93| Name| Description|
94| -- | -- |
95| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
96
97**Returns**
98
99| Type| Description|
100| -- | -- |
101| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
102
103### OH_AudioCapturer_Pause()
104
105```
106OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer* capturer)
107```
108
109**Description**
110
111Pauses an audio capturer.
112
113**Required permissions**: ohos.permission.MICROPHONE
114
115**Since**: 10
116
117
118**Parameters**
119
120| Name| Description|
121| -- | -- |
122| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
123
124**Returns**
125
126| Type| Description|
127| -- | -- |
128| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
129
130### OH_AudioCapturer_Stop()
131
132```
133OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer* capturer)
134```
135
136**Description**
137
138Stops an audio capturer, ceasing the input audio stream.
139
140**Required permissions**: ohos.permission.MICROPHONE
141
142**Since**: 10
143
144
145**Parameters**
146
147| Name| Description|
148| -- | -- |
149| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
150
151**Returns**
152
153| Type| Description|
154| -- | -- |
155| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
156
157### OH_AudioCapturer_Flush()
158
159```
160OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer* capturer)
161```
162
163**Description**
164
165Flushes audio data captured by an audio capturer.
166
167**Since**: 10
168
169
170**Parameters**
171
172| Name| Description|
173| -- | -- |
174| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
175
176**Returns**
177
178| Type| Description|
179| -- | -- |
180| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
181
182### OH_AudioCapturer_GetCurrentState()
183
184```
185OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer* capturer, OH_AudioStream_State* state)
186```
187
188**Description**
189
190Obtains the state of an audio capturer.
191
192**Since**: 10
193
194
195**Parameters**
196
197| Name| Description|
198| -- | -- |
199| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
200| [OH_AudioStream_State](capi-native-audiostream-base-h.md#oh_audiostream_state)* state | Pointer to a variable used to receive the state.|
201
202**Returns**
203
204| Type| Description|
205| -- | -- |
206| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
207
208### OH_AudioCapturer_GetLatencyMode()
209
210```
211OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer* capturer,OH_AudioStream_LatencyMode* latencyMode)
212```
213
214**Description**
215
216Obtains the latency mode of an audio capturer.
217
218**Since**: 10
219
220
221**Parameters**
222
223| Name| Description|
224| -- | -- |
225| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
226| [OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode)* latencyMode | Pointer to a variable used to receive the latency mode.|
227
228**Returns**
229
230| Type| Description|
231| -- | -- |
232| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
233
234### OH_AudioCapturer_GetStreamId()
235
236```
237OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer* capturer, uint32_t* streamId)
238```
239
240**Description**
241
242Obtains the stream ID of an audio capturer.
243
244**Since**: 10
245
246
247**Parameters**
248
249| Name| Description|
250| -- | -- |
251| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
252| uint32_t* streamId | Pointer to a variable used to receive the stream ID.|
253
254**Returns**
255
256| Type| Description|
257| -- | -- |
258| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
259
260### OH_AudioCapturer_GetSamplingRate()
261
262```
263OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer* capturer, int32_t* rate)
264```
265
266**Description**
267
268Obtains the sampling rate of an audio capturer.
269
270**Since**: 10
271
272
273**Parameters**
274
275| Name| Description|
276| -- | -- |
277| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
278| int32_t* rate | Pointer to a variable used to receive the sampling rate.|
279
280**Returns**
281
282| Type| Description|
283| -- | -- |
284| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
285
286### OH_AudioCapturer_GetChannelCount()
287
288```
289OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer* capturer, int32_t* channelCount)
290```
291
292**Description**
293
294Obtains the number of channels for an audio capturer.
295
296**Since**: 10
297
298
299**Parameters**
300
301| Name| Description|
302| -- | -- |
303| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
304| int32_t* channelCount | Pointer to a variable used to receive the channel count.|
305
306**Returns**
307
308| Type| Description|
309| -- | -- |
310| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
311
312### OH_AudioCapturer_GetSampleFormat()
313
314```
315OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer* capturer,OH_AudioStream_SampleFormat* sampleFormat)
316```
317
318**Description**
319
320Obtains the sampling format of an audio capturer.
321
322**Since**: 10
323
324
325**Parameters**
326
327| Name| Description|
328| -- | -- |
329| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
330| [OH_AudioStream_SampleFormat](capi-native-audiostream-base-h.md#oh_audiostream_sampleformat)* sampleFormat | Pointer to a variable used to receive the sampling format.|
331
332**Returns**
333
334| Type| Description|
335| -- | -- |
336| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
337
338### OH_AudioCapturer_GetEncodingType()
339
340```
341OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer* capturer,OH_AudioStream_EncodingType* encodingType)
342```
343
344**Description**
345
346Obtains the encoding type of an audio capturer.
347
348**Since**: 10
349
350
351**Parameters**
352
353| Name| Description|
354| -- | -- |
355| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
356| [OH_AudioStream_EncodingType](capi-native-audiostream-base-h.md#oh_audiostream_encodingtype)* encodingType | Pointer to a variable used to receive the encoding type.|
357
358**Returns**
359
360| Type| Description|
361| -- | -- |
362| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
363
364### OH_AudioCapturer_GetCapturerInfo()
365
366```
367OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer* capturer,OH_AudioStream_SourceType* sourceType)
368```
369
370**Description**
371
372Obtains the usage scenario of an audio capturer.
373
374**Since**: 10
375
376
377**Parameters**
378
379| Name| Description|
380| -- | -- |
381| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
382| [OH_AudioStream_SourceType](capi-native-audiostream-base-h.md#oh_audiostream_sourcetype)* sourceType | Pointer to a variable used to receive the usage scenario.|
383
384**Returns**
385
386| Type| Description|
387| -- | -- |
388| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
389
390### OH_AudioCapturer_GetFrameSizeInCallback()
391
392```
393OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer* capturer,int32_t* frameSize)
394```
395
396**Description**
397
398Obtains the frame size in the callback. The frame size is the fixed length of the buffer returned by each callback.
399
400**Since**: 10
401
402
403**Parameters**
404
405| Name| Description|
406| -- | -- |
407| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
408| int32_t* frameSize | Pointer to a variable used to receive the frame size.|
409
410**Returns**
411
412| Type| Description|
413| -- | -- |
414| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
415
416### OH_AudioCapturer_GetTimestamp()
417
418```
419OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer* capturer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)
420```
421
422**Description**
423
424Obtains the information about the input audio stream timestamp and the current data frame position.<br> This function obtains the actual recording position (specified by **framePosition**) of the audio channel and the timestamp when recording to that position (specified by **timestamp**, in nanoseconds).
425
426**Since**: 10
427
428
429**Parameters**
430
431| Name| Description|
432| -- | -- |
433| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
434| clockid_t clockId | Clock identifier. Use **CLOCK_MONOTONIC**.|
435| int64_t* framePosition | Pointer to a variable used to receive the position information.|
436| int64_t* timestamp | Pointer to a variable used to receive the timestamp.|
437
438**Returns**
439
440| Type| Description|
441| -- | -- |
442| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**:<br>1. The **capturer** parameter is nullptr.<br>2. The **clockId** parameter is invalid.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The execution status is abnormal. |
443
444### OH_AudioCapturer_GetFramesRead()
445
446```
447OH_AudioStream_Result OH_AudioCapturer_GetFramesRead(OH_AudioCapturer* capturer, int64_t* frames)
448```
449
450**Description**
451
452Obtains the number of frames that have been read since the stream was created.
453
454**Since**: 10
455
456
457**Parameters**
458
459| Name| Description|
460| -- | -- |
461| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
462| int64_t* frames | Pointer to a variable used to receive the frame count.|
463
464**Returns**
465
466| Type| Description|
467| -- | -- |
468| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
469
470### OH_AudioCapturer_GetOverflowCount()
471
472```
473OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount(OH_AudioCapturer* capturer, uint32_t* count)
474```
475
476**Description**
477
478Obtains the number of overloaded audio streams of an audio capturer.
479
480**Since**: 12
481
482
483**Parameters**
484
485| Name| Description|
486| -- | -- |
487| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
488| uint32_t* count | Pointer to a variable used to receive the number of overloaded audio streams.|
489
490**Returns**
491
492| Type| Description|
493| -- | -- |
494| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr. |
495
496### OH_AudioCapturer_OnReadDataCallback()
497
498```
499typedef void (*OH_AudioCapturer_OnReadDataCallback)(OH_AudioCapturer* capturer, void* userData, void* audioData,int32_t audioDataSize)
500```
501
502**Description**
503
504Defines the callback used to read audio data.
505
506**Since**: 20
507
508
509**Parameters**
510
511| Name| Description|
512| -- | -- |
513| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
514|  void* userData | Pointer to the data storage area customized by the application.|
515|  void* audioData | Pointer to the captured data storage area, which is used by the application to fill in captured data.|
516| int32_t audioDataSize | Length of the captured data.|
517
518### OH_AudioCapturer_OnDeviceChangeCallback()
519
520```
521typedef void (*OH_AudioCapturer_OnDeviceChangeCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioDeviceDescriptorArray* deviceArray)
522```
523
524**Description**
525
526Defines the callback for audio capturer device change events.
527
528**Since**: 20
529
530
531**Parameters**
532
533| Name| Description|
534| -- | -- |
535| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
536|  void* userData | Pointer to the data storage area customized by the application.|
537| [OH_AudioDeviceDescriptorArray](capi-ohaudio-oh-audiodevicedescriptorarray.md)* deviceArray | Pointer to the audio device descriptors in the array.|
538
539### OH_AudioCapturer_OnInterruptCallback()
540
541```
542typedef void (*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)
543```
544
545**Description**
546
547Defines the callback for interruption events of an audio capturer.
548
549**Since**: 20
550
551
552**Parameters**
553
554| Name| Description|
555| -- | -- |
556| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
557|  void* userData | Pointer to the data storage area customized by the application.|
558| [OH_AudioInterrupt_ForceType](capi-native-audiostream-base-h.md#oh_audiointerrupt_forcetype) type | Type of force that causes audio interruption.|
559|  [OH_AudioInterrupt_Hint](capi-native-audiostream-base-h.md#oh_audiointerrupt_hint) hint | Hint provided along with audio interruption.|
560
561### OH_AudioCapturer_OnErrorCallback()
562
563```
564typedef void (*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData,OH_AudioStream_Result error)
565```
566
567**Description**
568
569Defines the callback for error events of an audio capturer.
570
571**Since**: 20
572
573
574**Parameters**
575
576| Name| Description|
577| -- | -- |
578| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* renderer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
579|  void* userData | Pointer to the data storage area customized by the application.|
580| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) error | Audio capturer error.|
581
582### OH_AudioCapturer_GetFastStatus()
583
584```
585OH_AudioStream_Result OH_AudioCapturer_GetFastStatus(OH_AudioCapturer* capturer,OH_AudioStream_FastStatus* status)
586```
587
588**Description**
589
590Obtains the running status of an audio capturer to determine whether it is running in low-latency mode.
591
592**Since**: 20
593
594
595**Parameters**
596
597| Name| Description|
598| -- | -- |
599| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
600| [OH_AudioStream_FastStatus](capi-native-audiostream-base-h.md#oh_audiostream_faststatus)* status | Pointer to the running status.|
601
602**Returns**
603
604| Type| Description|
605| -- | -- |
606| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | **AUDIOSTREAM_SUCCESS**: The function is executed successfully.<br>**AUDIOSTREAM_ERROR_INVALID_PARAM**: The **capturer** parameter is nullptr.<br>**AUDIOSTREAM_ERROR_ILLEGAL_STATE**: The function is called in an incorrect state. |
607
608### OH_AudioCapturer_OnFastStatusChange()
609
610```
611typedef void (*OH_AudioCapturer_OnFastStatusChange)(OH_AudioCapturer* capturer,void* userData,OH_AudioStream_FastStatus status)
612```
613
614**Description**
615
616Defines a callback function for low-latency status changes during audio recording.
617
618**Since**: 20
619
620**Parameters**
621
622| Name| Description|
623| -- | -- |
624| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | Pointer to an audio capturer instance, which is created by calling [OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer).|
625| void* userData | Pointer to the data storage area customized by the application.|
626| status | Low-latency status.|
627