1# OH_AudioCapturer_Callbacks_Struct
2
3
4## 概述
5
6声明输入音频流的回调函数指针。
7
8为了避免不可预期的行为,在设置音频回调函数时,请确保该结构体的每一个成员变量都被自定义的回调方法或空指针初始化。可参考[使用OHAudio开发音频录制功能](../../media/audio/using-ohaudio-for-recording.md)。
9
10**系统能力:** SystemCapability.Multimedia.Audio.Core
11
12**起始版本:** 10
13
14**相关模块:**[OHAudio](_o_h_audio.md)
15
16
17## 汇总
18
19
20### 成员变量
21
22| 名称 | 描述 |
23| -------- | -------- |
24| int32_t (\*[OH_AudioCapturer_OnReadData](#oh_audiocapturer_onreaddata))([OH_AudioCapturer](_o_h_audio.md#oh_audiocapturer) \*capturer, void \*userData, void \*buffer, int32_t length) | 该函数指针将指向用于读取音频数据的回调函数。  |
25| int32_t (\*[OH_AudioCapturer_OnStreamEvent](#oh_audiocapturer_onstreamevent))([OH_AudioCapturer](_o_h_audio.md#oh_audiocapturer) \*capturer, void \*userData, [OH_AudioStream_Event](_o_h_audio.md#oh_audiostream_event) event) | 该函数指针将指向用于处理音频录制流事件的回调函数。  |
26| int32_t (\*[OH_AudioCapturer_OnInterruptEvent](#oh_audiocapturer_oninterruptevent))([OH_AudioCapturer](_o_h_audio.md#oh_audiocapturer) \*capturer, void \*userData, [OH_AudioInterrupt_ForceType](_o_h_audio.md#oh_audiointerrupt_forcetype) type, [OH_AudioInterrupt_Hint](_o_h_audio.md#oh_audiointerrupt_hint) hint) | 该函数指针将指向用于处理音频录制中断事件的回调函数。  |
27| int32_t (\*[OH_AudioCapturer_OnError](#oh_audiocapturer_onerror))([OH_AudioCapturer](_o_h_audio.md#oh_audiocapturer) \*capturer, void \*userData, [OH_AudioStream_Result](_o_h_audio.md#oh_audiostream_result) error) | 该函数指针将指向用于处理音频录制错误结果的回调函数。  |
28
29
30## 结构体成员变量说明
31
32> **说明:**
33> 以下回调接口的返回值没有枚举定义,当前版本实现并不按返回值区分处理,但为保证后续版本可扩展,默认使用0。
34
35
36### OH_AudioCapturer_OnError
37
38```
39int32_t (*OH_AudioCapturer_Callbacks_Struct::OH_AudioCapturer_OnError)(OH_AudioCapturer *capturer, void *userData, OH_AudioStream_Result error)
40```
41**描述**
42该函数指针将指向用于处理音频录制错误结果的回调函数。
43**参数:**
44
45| 名称 | 描述 |
46| -------- | -------- |
47| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](_o_h_audio.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
48| userData | 指向应用自定义的数据存储区域。 |
49| error | 音频录制错误结果[OH_AudioStream_Result](_o_h_audio.md#oh_audiostream_result),AUDIOSTREAM_ERROR_INVALID_PARAM、AUDIOSTREAM_ERROR_ILLEGAL_STATE或者AUDIOSTREAM_ERROR_SYSTEM。 |
50
51
52### OH_AudioCapturer_OnInterruptEvent
53
54```
55int32_t (*OH_AudioCapturer_Callbacks_Struct::OH_AudioCapturer_OnInterruptEvent)(OH_AudioCapturer *capturer, void *userData, OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)
56```
57**描述**
58该函数指针将指向用于处理音频录制中断事件的回调函数。
59
60**参数:**
61
62| 名称 | 描述 |
63| -------- | -------- |
64| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](_o_h_audio.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
65| userData | 指向应用自定义的数据存储区域。 |
66| type | 音频中断类型[OH_AudioInterrupt_ForceType](_o_h_audio.md#oh_audiointerrupt_forcetype)。 |
67| hint | 音频中断提示类型[OH_AudioInterrupt_Hint](_o_h_audio.md#oh_audiointerrupt_hint)。 |
68
69
70### OH_AudioCapturer_OnReadData
71
72```
73int32_t (*OH_AudioCapturer_Callbacks_Struct::OH_AudioCapturer_OnReadData)(OH_AudioCapturer *capturer, void *userData, void *buffer, int32_t length)
74```
75**描述**
76该函数指针将指向用于读取音频数据的回调函数。
77
78回调函数仅用来读取音频数据,请勿在回调函数中调用AudioCapturer相关接口。
79
80**参数:**
81
82| 名称 | 描述 |
83| -------- | -------- |
84| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](_o_h_audio.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
85| userData | 指向应用自定义的数据存储区域。 |
86| buffer | 指向录制数据存储区域,用于应用填充录制数据。 |
87| length | buffer的长度。 |
88
89
90### OH_AudioCapturer_OnStreamEvent
91
92```
93int32_t (*OH_AudioCapturer_Callbacks_Struct::OH_AudioCapturer_OnStreamEvent)(OH_AudioCapturer *capturer, void *userData, OH_AudioStream_Event event)
94```
95**描述**
96该函数指针将指向用于处理音频录制流事件的回调函数。
97
98**参数:**
99
100| 名称 | 描述 |
101| -------- | -------- |
102| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](_o_h_audio.md#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 |
103| userData | 指向应用自定义的数据存储区域。 |
104| event | 音频事件[OH_AudioStream_Event](_o_h_audio.md#oh_audiostream_event)。 |