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