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