1# OH_AudioCapturer_Callbacks_Struct 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开发音频录制功能](../../media/audio/using-ohaudio-for-recording.md)。 14 15**起始版本:** 10 16 17**废弃版本:** 20 18 19**替代接口:** 20 21请分别使用以下回调类型替代: 22 23[OH_AudioCapturer_OnReadDataCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onreaddatacallback)、 [OH_AudioCapturer_OnDeviceChangeCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_ondevicechangecallback)、 [OH_AudioCapturer_OnInterruptCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_oninterruptcallback) 以及 [OH_AudioCapturer_OnErrorCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onerrorcallback)。 24 25**相关模块:** [OHAudio](capi-ohaudio.md) 26 27**所在头文件:** [native_audiostream_base.h](capi-native-audiostream-base-h.md) 28 29## 汇总 30 31### 成员函数 32 33| 名称 | 描述 | 34| -- | -- | 35| [int32_t (\*OH_AudioCapturer_OnReadData)(OH_AudioCapturer* capturer,void* userData,void* buffer,int32_t length)](#oh_audiocapturer_onreaddata) | 该函数指针将指向用于读取音频数据的回调函数。 | 36| [int32_t (\*OH_AudioCapturer_OnStreamEvent)(OH_AudioCapturer* capturer,void* userData,OH_AudioStream_Event event)](#oh_audiocapturer_onstreamevent) | 该函数指针将指向用于处理音频录制流事件的回调函数。 | 37| [int32_t (\*OH_AudioCapturer_OnInterruptEvent)(OH_AudioCapturer* capturer,void* userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint)](#oh_audiocapturer_oninterruptevent) | 该函数指针将指向用于处理音频录制中断事件的回调函数。 | 38| [int32_t (\*OH_AudioCapturer_OnError)(OH_AudioCapturer* capturer, void* userData, OH_AudioStream_Result error)](#oh_audiocapturer_onerror)| 该函数指针将指向用于处理音频录制错误结果的回调函数。 | 39 40## 成员函数说明 41 42> **说明:** 43> 以下回调接口的返回值没有枚举定义,当前版本实现并不按返回值区分处理,但为保证后续版本可扩展,默认使用0。 44 45### OH_AudioCapturer_OnReadData() 46 47``` 48int32_t (*OH_AudioCapturer_OnReadData)(OH_AudioCapturer* capturer,void* userData,void* buffer,int32_t length) 49``` 50 51**描述** 52 53该函数指针将指向用于读取音频数据的回调函数。 54 55回调函数仅用来读取音频数据,请勿在回调函数中调用AudioCapturer相关接口。 56 57**起始版本:** 10 58 59**废弃版本:** 20 60 61**替代接口:** [OH_AudioCapturer_OnReadDataCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onreaddatacallback) 62 63**参数:** 64 65| 参数项 | 描述 | 66| -- | -- | 67| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 68| void* userData | 指向应用自定义的数据存储区域。 | 69| void* buffer | 指向播放数据存储区域,用于应用填充播放数据。 | 70| int32_t length | buffer的长度。 | 71 72### OH_AudioCapturer_OnStreamEvent() 73 74``` 75int32_t (*OH_AudioCapturer_OnStreamEvent)(OH_AudioCapturer* capturer,void* userData,OH_AudioStream_Event event) 76``` 77 78**描述** 79 80该函数指针将指向用于处理音频录制流事件的回调函数。 81 82**起始版本:** 10 83 84**废弃版本:** 20 85 86**替代接口:** [OH_AudioCapturer_OnDeviceChangeCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_ondevicechangecallback) 87 88**参数:** 89 90| 参数项 | 描述 | 91| -- | -- | 92| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 93| void* userData | 指向应用自定义的数据存储区域。 | 94| [OH_AudioStream_Event](capi-native-audiostream-base-h.md#oh_audiostream_event) event | 音频事件。 | 95 96### OH_AudioCapturer_OnInterruptEvent() 97 98``` 99int32_t (*OH_AudioCapturer_OnInterruptEvent)(OH_AudioCapturer* capturer,void* userData,OH_AudioInterrupt_ForceType type,OH_AudioInterrupt_Hint hint) 100``` 101 102**描述** 103 104该函数指针将指向用于处理音频录制中断事件的回调函数。 105 106**起始版本:** 10 107 108**废弃版本:** 20 109 110**替代接口:** [OH_AudioCapturer_OnInterruptCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_oninterruptcallback) 111 112**参数:** 113 114| 参数项 | 描述 | 115|--| -- | 116| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 117| void* userData | 指向应用自定义的数据存储区域。 | 118| [OH_AudioInterrupt_ForceType](capi-native-audiostream-base-h.md#oh_audiointerrupt_forcetype) type | 音频中断类型。 | 119| [OH_AudioInterrupt_Hint](capi-native-audiostream-base-h.md#oh_audiointerrupt_hint) hint | 音频中断提示类型。 | 120 121 122### OH_AudioCapturer_OnError() 123 124``` 125int32_t (*OH_AudioCapturer_OnError)(OH_AudioCapturer* capturer, void* userData, OH_AudioStream_Result error) 126``` 127 128**描述** 129 130该函数指针将指向用于处理音频录制错误结果的回调函数。 131 132**起始版本:** 10 133 134**废弃版本:** 20 135 136**替代接口:** [OH_AudioCapturer_OnErrorCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onerrorcallback) 137 138**参数:** 139 140| 参数项 | 描述 | 141|--| -- | 142| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)* capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 143| void* userData | 指向应用自定义的数据存储区域。 | 144| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) error | 音频录制错误结果,可能为AUDIOSTREAM_ERROR_INVALID_PARAM、AUDIOSTREAM_ERROR_ILLEGAL_STATE或者 AUDIOSTREAM_ERROR_SYSTEM。 | 145 146