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