• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audiostreambuilder.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声明音频流构造器相关接口。<br>包含构造和销毁构造器,设置音频流属性,回调等相关接口。
12
13**引用文件:** <ohaudio/native_audiostreambuilder.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| 名称 | 描述 |
28| -- | -- |
29| [OH_AudioStream_Result OH_AudioStreamBuilder_Create(OH_AudioStreamBuilder** builder, OH_AudioStream_Type type)](#oh_audiostreambuilder_create) | 创建一个输入或者输出类型的音频流构造器。<br>当构造器不再使用时,需要调用[OH_AudioStreamBuilder_Destroy](#oh_audiostreambuilder_destroy)销毁。 |
30| [OH_AudioStream_Result OH_AudioStreamBuilder_Destroy(OH_AudioStreamBuilder* builder)](#oh_audiostreambuilder_destroy) | 销毁一个音频流构造器。<br>当构造器不再使用时,需要调用该函数销毁。 |
31| [OH_AudioStream_Result OH_AudioStreamBuilder_SetSamplingRate(OH_AudioStreamBuilder* builder, int32_t rate)](#oh_audiostreambuilder_setsamplingrate) | 设置音频流的采样率属性。 |
32| [OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelCount(OH_AudioStreamBuilder* builder, int32_t channelCount)](#oh_audiostreambuilder_setchannelcount) | 设置音频流的通道数属性。 |
33| [OH_AudioStream_Result OH_AudioStreamBuilder_SetSampleFormat(OH_AudioStreamBuilder* builder, OH_AudioStream_SampleFormat format)](#oh_audiostreambuilder_setsampleformat) | 设置音频流的采样格式属性。 |
34| [OH_AudioStream_Result OH_AudioStreamBuilder_SetEncodingType(OH_AudioStreamBuilder* builder, OH_AudioStream_EncodingType encodingType)](#oh_audiostreambuilder_setencodingtype) | 设置音频流的编码类型属性。 |
35| [OH_AudioStream_Result OH_AudioStreamBuilder_SetLatencyMode(OH_AudioStreamBuilder* builder, OH_AudioStream_LatencyMode latencyMode)](#oh_audiostreambuilder_setlatencymode) | 设置音频流的时延模式。 |
36| [OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelLayout(OH_AudioStreamBuilder* builder, OH_AudioChannelLayout channelLayout)](#oh_audiostreambuilder_setchannellayout) | 设置音频流的声道布局。 |
37| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder, OH_AudioStream_Usage usage)](#oh_audiostreambuilder_setrendererinfo) | 设置输出音频流的工作场景。 |
38| [OH_AudioStream_Result OH_AudioStreamBuilder_SetVolumeMode(OH_AudioStreamBuilder* builder, OH_AudioStream_VolumeMode volumeMode)](#oh_audiostreambuilder_setvolumemode) | 设置音频流音量模式。 |
39| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerInfo(OH_AudioStreamBuilder* builder, OH_AudioStream_SourceType sourceType)](#oh_audiostreambuilder_setcapturerinfo) | 设置输入音频流的工作场景。 |
40| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_Callbacks callbacks, void* userData)](#oh_audiostreambuilder_setrenderercallback) | 设置输出音频流的回调。 |
41| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OutputDeviceChangeCallback callback, void* userData)](#oh_audiostreambuilder_setrendereroutputdevicechangecallback) | 设置输出音频流设备变更的回调。 |
42| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererPrivacy(OH_AudioStreamBuilder* builder, OH_AudioStream_PrivacyType privacy)](#oh_audiostreambuilder_setrendererprivacy) | 设置当前播放音频流是否会被其它应用录制。 |
43| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_Callbacks callbacks, void* userData)](#oh_audiostreambuilder_setcapturercallback) | 设置输入音频流的回调。 |
44| [OH_AudioStream_Result OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_WriteDataWithMetadataCallback callback, void* userData)](#oh_audiostreambuilder_setwritedatawithmetadatacallback) | 设置同时写入音频数据和元数据的回调。 |
45| [OH_AudioStream_Result OH_AudioStreamBuilder_GenerateRenderer(OH_AudioStreamBuilder* builder, OH_AudioRenderer** audioRenderer)](#oh_audiostreambuilder_generaterenderer) | 创建输出音频流实例。 |
46| [OH_AudioStream_Result OH_AudioStreamBuilder_GenerateCapturer(OH_AudioStreamBuilder* builder, OH_AudioCapturer** audioCapturer)](#oh_audiostreambuilder_generatecapturer) | 创建输入音频流实例。 |
47| [OH_AudioStream_Result OH_AudioStreamBuilder_SetFrameSizeInCallback(OH_AudioStreamBuilder* builder, int32_t frameSize)](#oh_audiostreambuilder_setframesizeincallback) | 用于播放时设置每次回调的帧长,帧长至少为音频硬件一次处理的数据大小,并且小于内部缓冲容量的一半。 |
48| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptMode(OH_AudioStreamBuilder* builder, OH_AudioInterrupt_Mode mode)](#oh_audiostreambuilder_setrendererinterruptmode) | 设置流客户端的中断模式。 |
49| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnWriteDataCallback callback, void* userData)](#oh_audiostreambuilder_setrendererwritedatacallback) | 设置写入音频数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,只有最后一次设置的回调才生效,其它回调不会生效。 |
50| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnWriteDataCallbackAdvanced callback, void* userData)](#oh_audiostreambuilder_setrendererwritedatacallbackadvanced) | 设置写入音频数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererWriteDataCallback](#oh_audiostreambuilder_setrendererwritedatacallback)类似。<br>如果同时设置该回调和OH_AudioStreamBuilder_SetRendererWriteDataCallback,只有最后一次设置的回调生效。<br>与OH_AudioStreamBuilder_SetRendererWriteDataCallback不同,OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced设置的回调函数,允许应用传入可变长度的音频数据,并通知系统写入的数据长度。 |
51| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnInterruptCallback callback, void* userData)](#oh_audiostreambuilder_setrendererinterruptcallback) | 设置输出音频流中断事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,只有最后一次设置的回调才生效,其它回调不会生效。 |
52| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererErrorCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnErrorCallback callback, void* userData)](#oh_audiostreambuilder_setrenderererrorcallback) | 设置输出音频流错误事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。 |
53| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerReadDataCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_OnReadDataCallback callback, void* userData)](#oh_audiostreambuilder_setcapturerreaddatacallback) | 设置输入音频流读取数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。 |
54| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_OnDeviceChangeCallback callback, void* userData)](#oh_audiostreambuilder_setcapturerdevicechangecallback) | 设置输入音频流设备变更的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。 |
55| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerInterruptCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_OnInterruptCallback callback, void* userData)](#oh_audiostreambuilder_setcapturerinterruptcallback) | 设置输入音频流中断事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。 |
56| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerErrorCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_OnErrorCallback callback, void* userData)](#oh_audiostreambuilder_setcapturererrorcallback) | 设置输入音频流错误事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。 |
57| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerWillMuteWhenInterrupted(OH_AudioStreamBuilder* builder, bool muteWhenInterrupted)](#oh_audiostreambuilder_setcapturerwillmutewheninterrupted) | 设置输入音频流是否启用静音打断模式。 |
58| [OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback(OH_AudioStreamBuilder* builder, OH_AudioRenderer_OnFastStatusChange callback, void* userData)](#oh_audiostreambuilder_setrendererfaststatuschangecallback) | 设置音频播放过程中低时延状态改变事件的回调函数。 |
59| [OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback(OH_AudioStreamBuilder* builder, OH_AudioCapturer_OnFastStatusChange callback, void* userData)](#oh_audiostreambuilder_setcapturerfaststatuschangecallback) | 设置音频录制过程中低时延状态改变事件的回调函数。 |
60
61## 函数说明
62
63### OH_AudioStreamBuilder_Create()
64
65```
66OH_AudioStream_Result OH_AudioStreamBuilder_Create(OH_AudioStreamBuilder** builder, OH_AudioStream_Type type)
67```
68
69**描述**
70
71创建一个输入或者输出类型的音频流构造器。<br>当构造器不再使用时,需要调用[OH_AudioStreamBuilder_Destroy](#oh_audiostreambuilder_destroy)销毁。
72
73**起始版本:** 10
74
75
76**参数:**
77
78| 参数项 | 描述 |
79| -- | -- |
80| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)** builder | 该引用指向创建的构造器的结果。 |
81| [OH_AudioStream_Type](capi-native-audiostream-base-h.md#oh_audiostream_type) type | 构造器的流类型。AUDIOSTREAM_TYPE_RENDERER或AUDIOSTREAM_TYPE_CAPTURER。 |
82
83**返回:**
84
85| 类型 | 说明 |
86| -- | -- |
87| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。 |
88
89### OH_AudioStreamBuilder_Destroy()
90
91```
92OH_AudioStream_Result OH_AudioStreamBuilder_Destroy(OH_AudioStreamBuilder* builder)
93```
94
95**描述**
96
97销毁一个音频流构造器。<br>当构造器不再使用时,需要调用该函数销毁。
98
99**起始版本:** 10
100
101
102**参数:**
103
104| 参数项 | 描述 |
105| -- | -- |
106| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
107
108**返回:**
109
110| 类型 | 说明 |
111| -- | -- |
112| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。<br>        AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
113
114### OH_AudioStreamBuilder_SetSamplingRate()
115
116```
117OH_AudioStream_Result OH_AudioStreamBuilder_SetSamplingRate(OH_AudioStreamBuilder* builder, int32_t rate)
118```
119
120**描述**
121
122设置音频流的采样率属性。
123
124**起始版本:** 10
125
126
127**参数:**
128
129| 参数项 | 描述 |
130| -- | -- |
131| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
132| int32_t rate | 音频流采样率。 |
133
134**返回:**
135
136| 类型 | 说明 |
137| -- | -- |
138| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数rate无效。 |
139
140### OH_AudioStreamBuilder_SetChannelCount()
141
142```
143OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelCount(OH_AudioStreamBuilder* builder, int32_t channelCount)
144```
145
146**描述**
147
148设置音频流的通道数属性。
149
150**起始版本:** 10
151
152
153**参数:**
154
155| 参数项 | 描述 |
156| -- | -- |
157| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
158| int32_t channelCount | 音频流通道数。 |
159
160**返回:**
161
162| 类型 | 说明 |
163| -- | -- |
164| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数channelCount无效。 |
165
166### OH_AudioStreamBuilder_SetSampleFormat()
167
168```
169OH_AudioStream_Result OH_AudioStreamBuilder_SetSampleFormat(OH_AudioStreamBuilder* builder,OH_AudioStream_SampleFormat format)
170```
171
172**描述**
173
174设置音频流的采样格式属性。
175
176**起始版本:** 10
177
178
179**参数:**
180
181| 参数项 | 描述 |
182| -- | -- |
183| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
184| [OH_AudioStream_SampleFormat](capi-native-audiostream-base-h.md#oh_audiostream_sampleformat) format | 音频流采样格式。 |
185
186**返回:**
187
188| 类型 | 说明 |
189| -- | -- |
190| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。 |
191
192### OH_AudioStreamBuilder_SetEncodingType()
193
194```
195OH_AudioStream_Result OH_AudioStreamBuilder_SetEncodingType(OH_AudioStreamBuilder* builder,OH_AudioStream_EncodingType encodingType)
196```
197
198**描述**
199
200设置音频流的编码类型属性。
201
202**起始版本:** 10
203
204
205**参数:**
206
207| 参数项 | 描述 |
208| -- | -- |
209| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
210| [OH_AudioStream_EncodingType](capi-native-audiostream-base-h.md#oh_audiostream_encodingtype) encodingType | 音频流编码类型。 |
211
212**返回:**
213
214| 类型 | 说明 |
215| -- | -- |
216| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。 |
217
218### OH_AudioStreamBuilder_SetLatencyMode()
219
220```
221OH_AudioStream_Result OH_AudioStreamBuilder_SetLatencyMode(OH_AudioStreamBuilder* builder,OH_AudioStream_LatencyMode latencyMode)
222```
223
224**描述**
225
226设置音频流的时延模式。
227
228**起始版本:** 10
229
230
231**参数:**
232
233| 参数项 | 描述 |
234| -- | -- |
235| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
236| [OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode) latencyMode | 音频流时延模式。 |
237
238**返回:**
239
240| 类型 | 说明 |
241| -- | -- |
242| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。 |
243
244### OH_AudioStreamBuilder_SetChannelLayout()
245
246```
247OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelLayout(OH_AudioStreamBuilder* builder,OH_AudioChannelLayout channelLayout)
248```
249
250**描述**
251
252设置音频流的声道布局。
253
254**起始版本:** 12
255
256
257**参数:**
258
259| 参数项 | 描述 |
260| -- | -- |
261| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
262| [OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1) channelLayout | 音频流声道布局。 |
263
264**返回:**
265
266| 类型 | 说明 |
267| -- | -- |
268| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。 |
269
270### OH_AudioStreamBuilder_SetRendererInfo()
271
272```
273OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder* builder,OH_AudioStream_Usage usage)
274```
275
276**描述**
277
278设置输出音频流的工作场景。
279
280**起始版本:** 10
281
282
283**参数:**
284
285| 参数项 | 描述 |
286| -- | -- |
287| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
288| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage) usage | 输出音频流属性,使用的工作场景。 |
289
290**返回:**
291
292| 类型 | 说明 |
293| -- | -- |
294| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数usage无效。 |
295
296### OH_AudioStreamBuilder_SetVolumeMode()
297
298```
299OH_AudioStream_Result OH_AudioStreamBuilder_SetVolumeMode(OH_AudioStreamBuilder* builder,OH_AudioStream_VolumeMode volumeMode)
300```
301
302**描述**
303
304设置音频流音量模式。
305
306**起始版本:** 18
307
308
309**参数:**
310
311| 参数项 | 描述 |
312| -- | -- |
313| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
314| [OH_AudioStream_VolumeMode](capi-native-audiostream-base-h.md#oh_audiostream_volumemode) volumeMode | 要设置的音频流音量模式。 |
315
316**返回:**
317
318| 类型 | 说明 |
319| -- | -- |
320| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数volumeMode无效。 |
321
322### OH_AudioStreamBuilder_SetCapturerInfo()
323
324```
325OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerInfo(OH_AudioStreamBuilder* builder,OH_AudioStream_SourceType sourceType)
326```
327
328**描述**
329
330设置输入音频流的工作场景。
331
332**起始版本:** 10
333
334
335**参数:**
336
337| 参数项 | 描述 |
338| -- | -- |
339| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
340| [OH_AudioStream_SourceType](capi-native-audiostream-base-h.md#oh_audiostream_sourcetype) sourceType | 输入音频流属性,使用的工作场景。 |
341
342**返回:**
343
344| 类型 | 说明 |
345| -- | -- |
346| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数sourceType无效。 |
347
348### OH_AudioStreamBuilder_SetRendererCallback()
349
350```
351OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_Callbacks callbacks, void* userData)
352```
353
354**描述**
355
356设置输出音频流的回调。
357
358**起始版本:** 10
359
360**废弃版本:** 20
361
362**替代接口:**
363
364请分别使用以下接口设置回调函数:<br>[OH_AudioStreamBuilder_SetRendererWriteDataCallback](#oh_audiostreambuilder_setrendererwritedatacallback)、[OH_AudioStreamBuilder_SetRendererInterruptCallback](#oh_audiostreambuilder_setrendererinterruptcallback)、[OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback](#oh_audiostreambuilder_setrendereroutputdevicechangecallback)以及 [OH_AudioStreamBuilder_SetRendererErrorCallback](#oh_audiostreambuilder_setrenderererrorcallback)。
365
366
367**参数:**
368
369| 参数项 | 描述 |
370| -- | -- |
371| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
372| [OH_AudioRenderer_Callbacks](capi-ohaudio-oh-audiorenderer-callbacks-struct.md) callbacks | 将被用来处理输出音频流相关事件的回调函数。 |
373| void* userData | 指向通过回调函数传递的应用数据指针。 |
374
375**返回:**
376
377| 类型 | 说明 |
378| -- | -- |
379| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
380
381### OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback()
382
383```
384OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OutputDeviceChangeCallback callback, void* userData)
385```
386
387**描述**
388
389设置输出音频流设备变更的回调。
390
391**起始版本:** 11
392
393
394**参数:**
395
396| 参数项 | 描述 |
397| -- | -- |
398| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
399| [OH_AudioRenderer_OutputDeviceChangeCallback](capi-native-audiostream-base-h.md#oh_audiorenderer_outputdevicechangecallback) callback | 将被用来处理输出流设备变更相关事件的回调函数。 |
400| void* userData | 指向通过回调函数传递的应用数据指针。 |
401
402**返回:**
403
404| 类型 | 说明 |
405| -- | -- |
406| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
407
408### OH_AudioStreamBuilder_SetRendererPrivacy()
409
410```
411OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererPrivacy(OH_AudioStreamBuilder* builder,OH_AudioStream_PrivacyType privacy)
412```
413
414**描述**
415
416设置当前播放音频流是否会被其它应用录制。
417
418**起始版本:** 12
419
420
421**参数:**
422
423| 参数项 | 描述 |
424| -- | -- |
425| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
426| [OH_AudioStream_PrivacyType](capi-native-audiostream-base-h.md#oh_audiostream_privacytype) privacy | 标识对应播放音频流是否会被其它应用录制。 |
427
428**返回:**
429
430| 类型 | 说明 |
431| -- | -- |
432| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
433
434### OH_AudioStreamBuilder_SetCapturerCallback()
435
436```
437OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_Callbacks callbacks, void* userData)
438```
439
440**描述**
441
442设置输入音频流的回调。
443
444**起始版本:** 10
445
446**废弃版本:** 20
447
448**替代接口:**
449
450请分别使用以下接口设置回调函数:<br>[OH_AudioStreamBuilder_SetCapturerReadDataCallback](#oh_audiostreambuilder_setcapturerreaddatacallback)、[OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback](#oh_audiostreambuilder_setcapturerdevicechangecallback)、[OH_AudioStreamBuilder_SetCapturerInterruptCallback](#oh_audiostreambuilder_setcapturerinterruptcallback)以及 [OH_AudioStreamBuilder_SetCapturerErrorCallback](#oh_audiostreambuilder_setcapturererrorcallback)。
451
452
453**参数:**
454
455| 参数项 | 描述 |
456| -- | -- |
457| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
458| [OH_AudioCapturer_Callbacks](capi-ohaudio-oh-audiocapturer-callbacks-struct.md) callbacks | 将被用来处理输入音频流相关事件的回调函数。 |
459| void* userData | 指向通过回调函数传递的应用数据指针。 |
460
461**返回:**
462
463| 类型 | 说明 |
464| -- | -- |
465| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
466
467### OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback()
468
469```
470OH_AudioStream_Result OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_WriteDataWithMetadataCallback callback, void* userData)
471```
472
473**描述**
474
475设置同时写入音频数据和元数据的回调。
476
477**起始版本:** 12
478
479
480**参数:**
481
482| 参数项 | 描述 |
483| -- | -- |
484| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
485| [OH_AudioRenderer_WriteDataWithMetadataCallback](capi-native-audiostream-base-h.md#oh_audiorenderer_writedatawithmetadatacallback) callback | 将被用来同时写入音频数据和元数据的回调函数。 |
486| void* userData | 指向通过回调函数传递的应用数据指针。 |
487
488**返回:**
489
490| 类型 | 说明 |
491| -- | -- |
492| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
493
494### OH_AudioStreamBuilder_GenerateRenderer()
495
496```
497OH_AudioStream_Result OH_AudioStreamBuilder_GenerateRenderer(OH_AudioStreamBuilder* builder,OH_AudioRenderer** audioRenderer)
498```
499
500**描述**
501
502创建输出音频流实例。
503
504**起始版本:** 10
505
506
507**参数:**
508
509| 参数项 | 描述 |
510| -- | -- |
511| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
512| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)** audioRenderer | 指向输出音频流实例的指针,将被用来接收函数创建的结果。 |
513
514**返回:**
515
516| 类型 | 说明 |
517| -- | -- |
518| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效;<br>                                                3. 创建OHAudioRenderer失败。 |
519
520### OH_AudioStreamBuilder_GenerateCapturer()
521
522```
523OH_AudioStream_Result OH_AudioStreamBuilder_GenerateCapturer(OH_AudioStreamBuilder* builder,OH_AudioCapturer** audioCapturer)
524```
525
526**描述**
527
528创建输入音频流实例。
529
530**起始版本:** 10
531
532
533**参数:**
534
535| 参数项 | 描述 |
536| -- | -- |
537| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
538| [OH_AudioCapturer](capi-ohaudio-oh-audiocapturerstruct.md)** audioCapturer | 指向输入音频流实例的指针,将被用来接收函数创建的结果。 |
539
540**返回:**
541
542| 类型 | 说明 |
543| -- | -- |
544| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效;<br>                                                3. 创建OHAudioCapturer失败。 |
545
546### OH_AudioStreamBuilder_SetFrameSizeInCallback()
547
548```
549OH_AudioStream_Result OH_AudioStreamBuilder_SetFrameSizeInCallback(OH_AudioStreamBuilder* builder,int32_t frameSize)
550```
551
552**描述**
553
554用于播放时设置每次回调的帧长,帧长至少为音频硬件一次处理的数据大小,并且小于内部缓冲容量的一半。<br>低时延播放:frameSize可设置为5ms、10ms、15ms、20ms音频数据对应的帧长。<br>普通通路播放:frameSize可设置为20ms-100ms音频数据对应的帧长。
555
556**起始版本:** 11
557
558
559**参数:**
560
561| 参数项 | 描述 |
562| -- | -- |
563| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
564| int32_t frameSize | 要设置音频数据的帧长。 |
565
566**返回:**
567
568| 类型 | 说明 |
569| -- | -- |
570| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。 |
571
572### OH_AudioStreamBuilder_SetRendererInterruptMode()
573
574```
575OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptMode(OH_AudioStreamBuilder* builder,OH_AudioInterrupt_Mode mode)
576```
577
578**描述**
579
580设置流客户端的中断模式。
581
582**起始版本:** 12
583
584
585**参数:**
586
587| 参数项 | 描述 |
588| -- | -- |
589| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
590| [OH_AudioInterrupt_Mode](capi-native-audiostream-base-h.md#oh_audiointerrupt_mode) mode | 音频中断模式。 |
591
592**返回:**
593
594| 类型 | 说明 |
595| -- | -- |
596| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. 参数mode无效;<br>                                                3. StreamType无效。 |
597
598### OH_AudioStreamBuilder_SetRendererWriteDataCallback()
599
600```
601OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OnWriteDataCallback callback, void* userData)
602```
603
604**描述**
605
606设置写入音频数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,只有最后一次设置的回调才生效,其它回调不会生效。
607
608**起始版本:** 12
609
610
611**参数:**
612
613| 参数项 | 描述 |
614| -- | -- |
615| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
616| [OH_AudioRenderer_OnWriteDataCallback](capi-native-audiostream-base-h.md#oh_audiorenderer_onwritedatacallback) callback | 将被用来写入音频数据的回调函数。 |
617| void* userData | 指向通过回调函数传递的应用数据指针。 |
618
619**返回:**
620
621| 类型 | 说明 |
622| -- | -- |
623| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                1. 参数builder为nullptr;<br>                                                2. StreamType无效。 |
624
625### OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced()
626
627```
628OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OnWriteDataCallbackAdvanced callback, void* userData)
629```
630
631**描述**
632
633设置写入音频数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererWriteDataCallback](#oh_audiostreambuilder_setrendererwritedatacallback)类似。<br>如果同时设置该回调和OH_AudioStreamBuilder_SetRendererWriteDataCallback,只有最后一次设置的回调生效。<br>与OH_AudioStreamBuilder_SetRendererWriteDataCallback不同,OH_AudioStreamBuilder_SetRendererWriteDataCallbackAdvanced设置的回调函数,允许应用传入可变长度的音频数据,并通知系统写入的数据长度。
634
635**起始版本:** 20
636
637
638**参数:**
639
640| 参数项 | 描述 |
641| -- | -- |
642| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
643| [OH_AudioRenderer_OnWriteDataCallbackAdvanced](capi-native-audiostream-base-h.md#oh_audiorenderer_onwritedatacallbackadvanced) callback | 将被用来写入音频数据的回调函数。 |
644| void* userData | 指向通过回调函数传递的应用数据指针。 |
645
646**返回:**
647
648| 类型 | 说明 |
649| -- | -- |
650| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数非法,比如builder为空指针,等等。 |
651
652### OH_AudioStreamBuilder_SetRendererInterruptCallback()
653
654```
655OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OnInterruptCallback callback, void* userData)
656```
657
658**描述**
659
660设置输出音频流中断事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,只有最后一次设置的回调才生效,其它回调不会生效。
661
662**起始版本:** 20
663
664
665**参数:**
666
667| 参数项 | 描述 |
668| -- | -- |
669| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
670| [OH_AudioRenderer_OnInterruptCallback](capi-native-audiorenderer-h.md#oh_audiorenderer_oninterruptcallback) callback | 用于接收中断事件的回调函数。 |
671| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
672
673**返回:**
674
675| 类型 | 说明 |
676| -- | -- |
677| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
678
679### OH_AudioStreamBuilder_SetRendererErrorCallback()
680
681```
682OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererErrorCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OnErrorCallback callback, void* userData)
683```
684
685**描述**
686
687设置输出音频流错误事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。
688
689**起始版本:** 20
690
691
692**参数:**
693
694| 参数项 | 描述 |
695| -- | -- |
696| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
697| [OH_AudioRenderer_OnErrorCallback](capi-native-audiorenderer-h.md#oh_audiorenderer_onerrorcallback) callback | 用于接收错误事件的回调函数。 |
698| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
699
700**返回:**
701
702| 类型 | 说明 |
703| -- | -- |
704| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
705
706### OH_AudioStreamBuilder_SetCapturerReadDataCallback()
707
708```
709OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerReadDataCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_OnReadDataCallback callback, void* userData)
710```
711
712**描述**
713
714设置输入音频流读取数据的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。
715
716**起始版本:** 20
717
718
719**参数:**
720
721| 参数项 | 描述 |
722| -- | -- |
723| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
724| [OH_AudioCapturer_OnReadDataCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onreaddatacallback) callback | 用于接收读取数据事件的回调函数。 |
725| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
726
727**返回:**
728
729| 类型 | 说明 |
730| -- | -- |
731| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
732
733### OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback()
734
735```
736OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerDeviceChangeCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_OnDeviceChangeCallback callback, void* userData)
737```
738
739**描述**
740
741设置输入音频流设备变更的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。
742
743**起始版本:** 20
744
745
746**参数:**
747
748| 参数项 | 描述 |
749| -- | -- |
750| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
751| [OH_AudioCapturer_OnDeviceChangeCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_ondevicechangecallback) callback | 用于接收设备变更事件的回调函数。 |
752| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
753
754**返回:**
755
756| 类型 | 说明 |
757| -- | -- |
758| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
759
760### OH_AudioStreamBuilder_SetCapturerInterruptCallback()
761
762```
763OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerInterruptCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_OnInterruptCallback callback, void* userData)
764```
765
766**描述**
767
768设置输入音频流中断事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。
769
770**起始版本:** 20
771
772
773**参数:**
774
775| 参数项 | 描述 |
776| -- | -- |
777| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
778| [OH_AudioCapturer_OnInterruptCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_oninterruptcallback) callback | 用于接收中断事件的回调函数。 |
779| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
780
781**返回:**
782
783| 类型 | 说明 |
784| -- | -- |
785| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
786
787### OH_AudioStreamBuilder_SetCapturerErrorCallback()
788
789```
790OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerErrorCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_OnErrorCallback callback, void* userData)
791```
792
793**描述**
794
795设置输入音频流错误事件的回调函数。<br>此函数与[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)类似。如果同时使用[OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)或者本函数,那么只有最后一次设置的回调才生效,其它回调不会生效。
796
797**起始版本:** 20
798
799
800**参数:**
801
802| 参数项 | 描述 |
803| -- | -- |
804| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
805| [OH_AudioCapturer_OnErrorCallback](capi-native-audiocapturer-h.md#oh_audiocapturer_onerrorcallback) callback | 用于接收错误事件的回调函数。 |
806| void* userData | 指向应用程序数据结构的指针,该结构将传递给回调函数。 |
807
808**返回:**
809
810| 类型 | 说明 |
811| -- | -- |
812| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
813
814### OH_AudioStreamBuilder_SetCapturerWillMuteWhenInterrupted()
815
816```
817OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerWillMuteWhenInterrupted(OH_AudioStreamBuilder* builder,bool muteWhenInterrupted)
818```
819
820**描述**
821
822设置输入音频流是否启用静音打断模式。
823
824**起始版本:** 20
825
826
827**参数:**
828
829| 参数项 | 描述 |
830| -- | -- |
831| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
832| bool muteWhenInterrupted | 设置成true表示应用需要在录制时静音而不是被打断。 |
833
834**返回:**
835
836| 类型 | 说明 |
837| -- | -- |
838| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
839
840### OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback()
841
842```
843OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback(OH_AudioStreamBuilder* builder,OH_AudioRenderer_OnFastStatusChange callback, void* userData)
844```
845
846**描述**
847
848设置音频播放过程中低时延状态改变事件的回调函数。
849
850**起始版本:** 20
851
852
853**参数:**
854
855| 参数项 | 描述 |
856| -- | -- |
857| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
858| [OH_AudioRenderer_OnFastStatusChange](capi-native-audiorenderer-h.md#oh_audiorenderer_onfaststatuschange) callback | 用于接收播放低时延状态改变事件的回调函数。 |
859| void* userData | 向应用程序数据结构的指针,该结构将传递给回调函数。 |
860
861**返回:**
862
863| 类型 | 说明 |
864| -- | -- |
865| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
866
867### OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback()
868
869```
870OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback(OH_AudioStreamBuilder* builder,OH_AudioCapturer_OnFastStatusChange callback, void* userData)
871```
872
873**描述**
874
875设置音频录制过程中低时延状态改变事件的回调函数。
876
877**起始版本:** 20
878
879
880**参数:**
881
882| 参数项 | 描述 |
883| -- | -- |
884| [OH_AudioStreamBuilder](capi-ohaudio-oh-audiostreambuilderstruct.md)* builder | 指向[OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)创建的构造器实例。 |
885| [OH_AudioCapturer_OnFastStatusChange](capi-native-audiocapturer-h.md#oh_audiocapturer_onfaststatuschange) callback | 用于接收录制低时延状态改变事件的回调函数。 |
886| void* userData | 向应用程序数据结构的指针,该结构将传递给回调函数。 |
887
888**返回:**
889
890| 类型 | 说明 |
891| -- | -- |
892| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>        AUDIOSTREAM_ERROR_INVALID_PARAM:参数无效,比如,builder为空指针。 |
893
894
895