• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# native_audiorenderer.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_audiorenderer.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_AudioRenderer_Release(OH_AudioRenderer* renderer)](#oh_audiorenderer_release) | - | 释放输出音频流。 |
30| [OH_AudioStream_Result OH_AudioRenderer_Start(OH_AudioRenderer* renderer)](#oh_audiorenderer_start) | - | 开始输出音频数据。 |
31| [OH_AudioStream_Result OH_AudioRenderer_Pause(OH_AudioRenderer* renderer)](#oh_audiorenderer_pause) | - | 暂停输出音频流。 |
32| [OH_AudioStream_Result OH_AudioRenderer_Stop(OH_AudioRenderer* renderer)](#oh_audiorenderer_stop) | - | 停止输出音频流。 |
33| [OH_AudioStream_Result OH_AudioRenderer_Flush(OH_AudioRenderer* renderer)](#oh_audiorenderer_flush) | - | 清空缓冲区的音频数据。 |
34| [OH_AudioStream_Result OH_AudioRenderer_GetCurrentState(OH_AudioRenderer* renderer, OH_AudioStream_State* state)](#oh_audiorenderer_getcurrentstate) | - | 查询当前输出音频流状态。 |
35| [OH_AudioStream_Result OH_AudioRenderer_GetSamplingRate(OH_AudioRenderer* renderer, int32_t* rate)](#oh_audiorenderer_getsamplingrate) | - | 查询当前输出音频流采样率。 |
36| [OH_AudioStream_Result OH_AudioRenderer_GetStreamId(OH_AudioRenderer* renderer, uint32_t* streamId)](#oh_audiorenderer_getstreamid) | - | 查询当前输出音频流ID。 |
37| [OH_AudioStream_Result OH_AudioRenderer_GetChannelCount(OH_AudioRenderer* renderer, int32_t* channelCount)](#oh_audiorenderer_getchannelcount) | - | 查询当前输出音频流通道数。 |
38| [OH_AudioStream_Result OH_AudioRenderer_GetSampleFormat(OH_AudioRenderer* renderer, OH_AudioStream_SampleFormat* sampleFormat)](#oh_audiorenderer_getsampleformat) | - | 查询当前输出音频流采样格式。 |
39| [OH_AudioStream_Result OH_AudioRenderer_GetLatencyMode(OH_AudioRenderer* renderer, OH_AudioStream_LatencyMode* latencyMode)](#oh_audiorenderer_getlatencymode) | - | 查询当前输出音频流时延模式。 |
40| [OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer, OH_AudioStream_Usage* usage)](#oh_audiorenderer_getrendererinfo) | - | 查询当前输出音频流的使用类型。 |
41| [OH_AudioStream_Result OH_AudioRenderer_GetEncodingType(OH_AudioRenderer* renderer, OH_AudioStream_EncodingType* encodingType)](#oh_audiorenderer_getencodingtype) | - | 查询当前输出音频流编码类型。 |
42| [OH_AudioStream_Result OH_AudioRenderer_GetFramesWritten(OH_AudioRenderer* renderer, int64_t* frames)](#oh_audiorenderer_getframeswritten) | - | 查询自创建流以来已写入的帧数。 |
43| [OH_AudioStream_Result OH_AudioRenderer_GetTimestamp(OH_AudioRenderer* renderer, clockid_t clockId, int64_t* framePosition, int64_t* timestamp)](#oh_audiorenderer_gettimestamp) | - | 获取输出音频流时间戳和位置信息。<br> 该接口可以获取到音频通道实际播放位置(framePosition)以及播放到该位置时候的时间戳(timestamp),时间戳单位为纳秒。<br> 当设备切换或暂停恢复时,由于播放通路本身需要一段时间恢复,调用该接口获取的播放位置和时间戳会短暂地保持在切换或暂停前的状态。 |
44| [OH_AudioStream_Result OH_AudioRenderer_GetAudioTimestampInfo(OH_AudioRenderer* renderer, int64_t* framePosition, int64_t* timestamp)](#oh_audiorenderer_getaudiotimestampinfo) | - | 获取输出音频流时间戳和位置信息,适配倍速接口。<br> 获取输出音频流时间戳和位置信息,通常用于进行音画同步对齐。 |
45| [OH_AudioStream_Result OH_AudioRenderer_GetFrameSizeInCallback(OH_AudioRenderer* renderer, int32_t* frameSize)](#oh_audiorenderer_getframesizeincallback) | - | 在回调中查询帧大小,它是一个固定的长度,每次回调都要填充流。 |
46| [OH_AudioStream_Result OH_AudioRenderer_GetSpeed(OH_AudioRenderer* renderer, float* speed)](#oh_audiorenderer_getspeed) | - | 获取音频渲染速率。 |
47| [OH_AudioStream_Result OH_AudioRenderer_SetSpeed(OH_AudioRenderer* renderer, float speed)](#oh_audiorenderer_setspeed) | - | 设置音频渲染速率。 |
48| [OH_AudioStream_Result OH_AudioRenderer_SetMarkPosition(OH_AudioRenderer* renderer, uint32_t samplePos, OH_AudioRenderer_OnMarkReachedCallback callback, void* userData)](#oh_audiorenderer_setmarkposition) | - | 在当前渲染器上设置标记位置。调用此函数将覆盖已设置的标记位置。 |
49| [OH_AudioStream_Result OH_AudioRenderer_CancelMark(OH_AudioRenderer* renderer)](#oh_audiorenderer_cancelmark) | - | 取消由[OH_AudioRenderer_SetMarkPosition](#oh_audiorenderer_setmarkposition)设置的标记。 |
50| [OH_AudioStream_Result OH_AudioRenderer_SetVolume(OH_AudioRenderer* renderer, float volume)](#oh_audiorenderer_setvolume) | - | 设置当前音频流音量值。 |
51| [OH_AudioStream_Result OH_AudioRenderer_SetVolumeWithRamp(OH_AudioRenderer* renderer, float volume, int32_t durationMs)](#oh_audiorenderer_setvolumewithramp) | - | 在指定时间范围内使用渐变更改音量。 |
52| [OH_AudioStream_Result OH_AudioRenderer_GetVolume(OH_AudioRenderer* renderer, float* volume)](#oh_audiorenderer_getvolume) | - | 获取当前音频流音量值。 |
53| [OH_AudioStream_Result OH_AudioRenderer_GetUnderflowCount(OH_AudioRenderer* renderer, uint32_t* count)](#oh_audiorenderer_getunderflowcount) | - | 获取当前播放音频流欠载数。 |
54| [OH_AudioStream_Result OH_AudioRenderer_GetChannelLayout(OH_AudioRenderer* renderer, OH_AudioChannelLayout* channelLayout)](#oh_audiorenderer_getchannellayout) | - | 查询当前音频流声道布局。 |
55| [OH_AudioStream_Result OH_AudioRenderer_GetEffectMode(OH_AudioRenderer* renderer, OH_AudioStream_AudioEffectMode* effectMode)](#oh_audiorenderer_geteffectmode) | - | 查询当前音频流音效模式。 |
56| [OH_AudioStream_Result OH_AudioRenderer_SetEffectMode(OH_AudioRenderer* renderer, OH_AudioStream_AudioEffectMode effectMode)](#oh_audiorenderer_seteffectmode) | - | 设置当前音频流音效模式。 |
57| [OH_AudioStream_Result OH_AudioRenderer_GetRendererPrivacy(OH_AudioRenderer* renderer, OH_AudioStream_PrivacyType* privacy)](#oh_audiorenderer_getrendererprivacy) | - | 查询当前播放音频流是否会被其它应用录制。 |
58| [OH_AudioStream_Result OH_AudioRenderer_SetSilentModeAndMixWithOthers(OH_AudioRenderer* renderer, bool on)](#oh_audiorenderer_setsilentmodeandmixwithothers) | - | 设置静音并发播放模式。<br> 当设置为true,打开静音并发播放模式,系统将让此音频流静音播放,并且不会打断其他音频流。设置为false,将关闭静音并发播放,音频流可根据系统焦点策略抢占焦点。 |
59| [OH_AudioStream_Result OH_AudioRenderer_GetSilentModeAndMixWithOthers(OH_AudioRenderer* renderer, bool* on)](#oh_audiorenderer_getsilentmodeandmixwithothers) | - | 获取当前音频流是否开启静音并发播放。 |
60| [OH_AudioStream_Result OH_AudioRenderer_SetDefaultOutputDevice(OH_AudioRenderer* renderer, OH_AudioDevice_Type deviceType)](#oh_audiorenderer_setdefaultoutputdevice) | - | 设置默认本机内置发声设备。<br> 本接口仅适用于音频流类型[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage)为语音消息、VoIP语音通话或者VoIP视频通话的场景使用,以及可选的设备类型为听筒、扬声器和系统默认设备。<br> 本接口允许在AudioRenderer创建以后的任何时间被调用,系统会记录应用设置的默认本机内置发声设备。在应用启动播放时,若有外接设备如蓝牙耳机/有线耳机接入,系统优先从外接设备发声;否则系统遵循应用设置的默认本机内置发声设备发声。<br> |
61| [typedef void (\*OH_AudioRenderer_OnInterruptCallback)(OH_AudioRenderer* renderer, void* userData, OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)](#oh_audiorenderer_oninterruptcallback) | OH_AudioRenderer_OnInterruptCallback | 音频流中断事件回调函数。 |
62| [typedef void (\*OH_AudioRenderer_OnErrorCallback)(OH_AudioRenderer* renderer, void* userData, OH_AudioStream_Result error)](#oh_audiorenderer_onerrorcallback) | OH_AudioRenderer_OnErrorCallback | 音频流错误事件回调函数。 |
63| [OH_AudioStream_Result OH_AudioRenderer_GetFastStatus(OH_AudioRenderer* renderer, OH_AudioStream_FastStatus* status)](#oh_audiorenderer_getfaststatus) | - | 获取音频播放过程中的运行状态,是否在低时延状态下工作。 |
64| [typedef void (\*OH_AudioRenderer_OnFastStatusChange)(OH_AudioRenderer* renderer, void* userData, OH_AudioStream_FastStatus status)](#oh_audiorenderer_onfaststatuschange) | OH_AudioRenderer_OnFastStatusChange | 音频播放过程中低时延状态改变事件的回调函数。 |
65| [OH_AudioStream_Result OH_AudioRenderer_SetLoudnessGain(OH_AudioRenderer* renderer, float loudnessGain)](#oh_audiorenderer_setloudnessgain) | - | 设置音频播放的响度值。默认的响度值是0.0dB。音频流播放类型必须是音乐[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_MUSIC,<br> 电影或视频[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_MUSIC,<br> 有声读物(包括听书、相声、评书)、听新闻、播客等[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_AUDIOBOOK。<br> 音频流的时延模式必须是普通时延[OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode).AUDIOSTREAM_LATENCY_MODE_NORMAL。<br> 本接口不支持通过高清通路播放的音频流设置响度。<br> 由于音频框架与硬件之间存在缓冲区,响度调节实际生效存在延迟,时长取决于缓冲区长度。<br> 建议在不同音频开始播放前预先设置响度,以实现最佳均衡效果。 |
66| [OH_AudioStream_Result OH_AudioRenderer_GetLoudnessGain(OH_AudioRenderer* renderer, float* loudnessGain)](#oh_audiorenderer_getloudnessgain) | - | 获取音频流的响度值。 |
67
68## 函数说明
69
70### OH_AudioRenderer_Release()
71
72```
73OH_AudioStream_Result OH_AudioRenderer_Release(OH_AudioRenderer* renderer)
74```
75
76**描述**
77
78释放输出音频流。
79
80**起始版本:** 10
81
82
83**参数:**
84
85| 参数项 | 描述 |
86| -- | -- |
87| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
88
89**返回:**
90
91| 类型 | 说明 |
92| -- | -- |
93| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
94
95### OH_AudioRenderer_Start()
96
97```
98OH_AudioStream_Result OH_AudioRenderer_Start(OH_AudioRenderer* renderer)
99```
100
101**描述**
102
103开始输出音频数据。
104
105**起始版本:** 10
106
107
108**参数:**
109
110| 参数项 | 描述 |
111| -- | -- |
112| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
113
114**返回:**
115
116| 类型 | 说明 |
117| -- | -- |
118| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
119
120### OH_AudioRenderer_Pause()
121
122```
123OH_AudioStream_Result OH_AudioRenderer_Pause(OH_AudioRenderer* renderer)
124```
125
126**描述**
127
128暂停输出音频流。
129
130**起始版本:** 10
131
132
133**参数:**
134
135| 参数项 | 描述 |
136| -- | -- |
137| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
138
139**返回:**
140
141| 类型 | 说明 |
142| -- | -- |
143| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
144
145### OH_AudioRenderer_Stop()
146
147```
148OH_AudioStream_Result OH_AudioRenderer_Stop(OH_AudioRenderer* renderer)
149```
150
151**描述**
152
153停止输出音频流。
154
155**起始版本:** 10
156
157
158**参数:**
159
160| 参数项 | 描述 |
161| -- | -- |
162| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
163
164**返回:**
165
166| 类型 | 说明 |
167| -- | -- |
168| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
169
170### OH_AudioRenderer_Flush()
171
172```
173OH_AudioStream_Result OH_AudioRenderer_Flush(OH_AudioRenderer* renderer)
174```
175
176**描述**
177
178清空缓冲区的音频数据。
179
180**起始版本:** 10
181
182
183**参数:**
184
185| 参数项 | 描述 |
186| -- | -- |
187| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
188
189**返回:**
190
191| 类型 | 说明 |
192| -- | -- |
193| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
194
195### OH_AudioRenderer_GetCurrentState()
196
197```
198OH_AudioStream_Result OH_AudioRenderer_GetCurrentState(OH_AudioRenderer* renderer,OH_AudioStream_State* state)
199```
200
201**描述**
202
203查询当前输出音频流状态。
204
205**起始版本:** 10
206
207
208**参数:**
209
210| 参数项 | 描述 |
211| -- | -- |
212| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
213| [OH_AudioStream_State](capi-native-audiostream-base-h.md#oh_audiostream_state)* state | 指向一个用来接收音频流状态的变量。 |
214
215**返回:**
216
217| 类型 | 说明 |
218| -- | -- |
219| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
220
221### OH_AudioRenderer_GetSamplingRate()
222
223```
224OH_AudioStream_Result OH_AudioRenderer_GetSamplingRate(OH_AudioRenderer* renderer, int32_t* rate)
225```
226
227**描述**
228
229查询当前输出音频流采样率。
230
231**起始版本:** 10
232
233
234**参数:**
235
236| 参数项 | 描述 |
237| -- | -- |
238| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
239| int32_t* rate | 指向一个用来接收音频流采样率的变量。 |
240
241**返回:**
242
243| 类型 | 说明 |
244| -- | -- |
245| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
246
247### OH_AudioRenderer_GetStreamId()
248
249```
250OH_AudioStream_Result OH_AudioRenderer_GetStreamId(OH_AudioRenderer* renderer, uint32_t* streamId)
251```
252
253**描述**
254
255查询当前输出音频流ID。
256
257**起始版本:** 10
258
259
260**参数:**
261
262| 参数项 | 描述 |
263| -- | -- |
264| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
265| uint32_t* streamId | 指向一个用来接收音频流ID的变量。 |
266
267**返回:**
268
269| 类型 | 说明 |
270| -- | -- |
271| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
272
273### OH_AudioRenderer_GetChannelCount()
274
275```
276OH_AudioStream_Result OH_AudioRenderer_GetChannelCount(OH_AudioRenderer* renderer, int32_t* channelCount)
277```
278
279**描述**
280
281查询当前输出音频流通道数。
282
283**起始版本:** 10
284
285
286**参数:**
287
288| 参数项 | 描述 |
289| -- | -- |
290| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
291| int32_t* channelCount | 指向一个用来接收音频流通道数的变量。 |
292
293**返回:**
294
295| 类型 | 说明 |
296| -- | -- |
297| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
298
299### OH_AudioRenderer_GetSampleFormat()
300
301```
302OH_AudioStream_Result OH_AudioRenderer_GetSampleFormat(OH_AudioRenderer* renderer,OH_AudioStream_SampleFormat* sampleFormat)
303```
304
305**描述**
306
307查询当前输出音频流采样格式。
308
309**起始版本:** 10
310
311
312**参数:**
313
314| 参数项 | 描述 |
315| -- | -- |
316| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
317| [OH_AudioStream_SampleFormat](capi-native-audiostream-base-h.md#oh_audiostream_sampleformat)* sampleFormat | 指向一个用来接收音频流采样格式的变量。 |
318
319**返回:**
320
321| 类型 | 说明 |
322| -- | -- |
323| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
324
325### OH_AudioRenderer_GetLatencyMode()
326
327```
328OH_AudioStream_Result OH_AudioRenderer_GetLatencyMode(OH_AudioRenderer* renderer,OH_AudioStream_LatencyMode* latencyMode)
329```
330
331**描述**
332
333查询当前输出音频流时延模式。
334
335**起始版本:** 10
336
337
338**参数:**
339
340| 参数项 | 描述 |
341| -- | -- |
342| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
343| [OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode)* latencyMode | 指向一个用来接收音频流时延模式的变量。 |
344
345**返回:**
346
347| 类型 | 说明 |
348| -- | -- |
349| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
350
351### OH_AudioRenderer_GetRendererInfo()
352
353```
354OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer* renderer,OH_AudioStream_Usage* usage)
355```
356
357**描述**
358
359查询当前输出音频流的使用类型。
360
361**起始版本:** 10
362
363
364**参数:**
365
366| 参数项 | 描述 |
367| -- | -- |
368| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
369| [OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage)* usage | 指向一个用来接收输出类型音频流的使用类型的变量。 |
370
371**返回:**
372
373| 类型 | 说明 |
374| -- | -- |
375| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
376
377### OH_AudioRenderer_GetEncodingType()
378
379```
380OH_AudioStream_Result OH_AudioRenderer_GetEncodingType(OH_AudioRenderer* renderer,OH_AudioStream_EncodingType* encodingType)
381```
382
383**描述**
384
385查询当前输出音频流编码类型。
386
387**起始版本:** 10
388
389
390**参数:**
391
392| 参数项 | 描述 |
393| -- | -- |
394| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
395| [OH_AudioStream_EncodingType](capi-native-audiostream-base-h.md#oh_audiostream_encodingtype)* encodingType | 指向一个用来接收音频流编码类型的变量。 |
396
397**返回:**
398
399| 类型 | 说明 |
400| -- | -- |
401| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
402
403### OH_AudioRenderer_GetFramesWritten()
404
405```
406OH_AudioStream_Result OH_AudioRenderer_GetFramesWritten(OH_AudioRenderer* renderer, int64_t* frames)
407```
408
409**描述**
410
411查询自创建流以来已写入的帧数。
412
413**起始版本:** 10
414
415
416**参数:**
417
418| 参数项 | 描述 |
419| -- | -- |
420| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
421| int64_t* frames | 指向将为帧计数设置的变量的指针。 |
422
423**返回:**
424
425| 类型 | 说明 |
426| -- | -- |
427| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
428
429### OH_AudioRenderer_GetTimestamp()
430
431```
432OH_AudioStream_Result OH_AudioRenderer_GetTimestamp(OH_AudioRenderer* renderer, clockid_t clockId,int64_t* framePosition, int64_t* timestamp)
433```
434
435**描述**
436
437获取输出音频流时间戳和位置信息。<br> 该接口可以获取到音频通道实际播放位置(framePosition)以及播放到该位置时候的时间戳(timestamp),时间戳单位为纳秒。<br> 当设备切换或暂停恢复时,由于播放通路本身需要一段时间恢复,调用该接口获取的播放位置和时间戳会短暂地保持在切换或暂停前的状态。<br> 该接口一般用来实现音画同步,建议频率不要太频繁,可以每分钟一次,最好不要低200ms一次。频繁调用可能会带来功耗问题,因此在能保证音画同步效果的情况下,不需要频繁的查询时间戳。
438
439**起始版本:** 10
440
441
442**参数:**
443
444| 参数项 | 描述 |
445| -- | -- |
446| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
447| clockid_t clockId | 时钟标识符,使用CLOCK_MONOTONIC。 |
448| int64_t* framePosition | 指向要接收位置的变量的指针。 |
449| int64_t* timestamp | 指向接收时间戳的变量的指针。 |
450
451**返回:**
452
453| 类型 | 说明 |
454| -- | -- |
455| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数clockId无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 |
456
457### OH_AudioRenderer_GetAudioTimestampInfo()
458
459```
460OH_AudioStream_Result OH_AudioRenderer_GetAudioTimestampInfo(OH_AudioRenderer* renderer,int64_t* framePosition, int64_t* timestamp)
461```
462
463**描述**
464
465获取输出音频流时间戳和位置信息,适配倍速接口。<br> 获取输出音频流时间戳和位置信息,通常用于进行音画同步对齐。<br> 注意,当实际播放位置(framePosition)为0时,时间戳(timestamp)是固定值,直到流真正跑起来时才会更新。当调用Flush接口时实际播放位置也会被重置。<br> 当音频流路由(route)变化时,例如设备变化或者输出类型变化时,播放位置也会被重置,但此时时间戳仍会持续增长。推荐当实际播放位置和时间戳的变化稳定后再使用该接口获取的值。该接口适配倍速接口,例如当播放速度设置为2倍时,播放位置的增长速度也会返回为正常的2倍。<br>
466
467**起始版本:** 15
468
469
470**参数:**
471
472| 参数项 | 描述 |
473| -- | -- |
474| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
475| int64_t* framePosition | 指向要接收位置的变量的指针。 |
476| int64_t* timestamp | 指向接收时间戳的变量的指针。 |
477
478**返回:**
479
480| 类型 | 说明 |
481| -- | -- |
482| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数framePosition或timestamp为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:当前流状态不为合法状态时返回。<br>         AUDIOSTREAM_ERROR_SYSTEM:<br>                                          1. 系统进程崩溃或被阻塞;<br>                                          2. 内部系统其他错误。 |
483
484### OH_AudioRenderer_GetFrameSizeInCallback()
485
486```
487OH_AudioStream_Result OH_AudioRenderer_GetFrameSizeInCallback(OH_AudioRenderer* renderer, int32_t* frameSize)
488```
489
490**描述**
491
492在回调中查询帧大小,它是一个固定的长度,每次回调都要填充流。
493
494**起始版本:** 10
495
496
497**参数:**
498
499| 参数项 | 描述 |
500| -- | -- |
501| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
502| int32_t* frameSize | 指向将为帧大小设置的变量的指针。 |
503
504**返回:**
505
506| 类型 | 说明 |
507| -- | -- |
508| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
509
510### OH_AudioRenderer_GetSpeed()
511
512```
513OH_AudioStream_Result OH_AudioRenderer_GetSpeed(OH_AudioRenderer* renderer, float* speed)
514```
515
516**描述**
517
518获取音频渲染速率。
519
520**起始版本:** 11
521
522
523**参数:**
524
525| 参数项 | 描述 |
526| -- | -- |
527| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
528| float* speed | 指向接收播放倍速值的变量的指针。 |
529
530**返回:**
531
532| 类型 | 说明 |
533| -- | -- |
534| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
535
536### OH_AudioRenderer_SetSpeed()
537
538```
539OH_AudioStream_Result OH_AudioRenderer_SetSpeed(OH_AudioRenderer* renderer, float speed)
540```
541
542**描述**
543
544设置音频渲染速率。
545
546**起始版本:** 11
547
548
549**参数:**
550
551| 参数项 | 描述 |
552| -- | -- |
553| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
554| float speed | 设置播放的倍速值(倍速范围:0.25-4.0)。 |
555
556**返回:**
557
558| 类型 | 说明 |
559| -- | -- |
560| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
561
562### OH_AudioRenderer_SetMarkPosition()
563
564```
565OH_AudioStream_Result OH_AudioRenderer_SetMarkPosition(OH_AudioRenderer* renderer, uint32_t samplePos,OH_AudioRenderer_OnMarkReachedCallback callback, void* userData)
566```
567
568**描述**
569
570在当前渲染器上设置标记位置。调用此函数将覆盖已设置的标记位置。
571
572**起始版本:** 12
573
574
575**参数:**
576
577| 参数项 | 描述 |
578| -- | -- |
579| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
580| uint32_t samplePos | 设置目标标记位置。 |
581| [OH_AudioRenderer_OnMarkReachedCallback](capi-native-audiostream-base-h.md#oh_audiorenderer_onmarkreachedcallback) callback | 当到达目标标记位置时回调。 |
582| void* userData | 指向通过回调函数传递的应用数据指针。 |
583
584**返回:**
585
586| 类型 | 说明 |
587| -- | -- |
588| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数samplePos无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。<br>         AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。 |
589
590### OH_AudioRenderer_CancelMark()
591
592```
593OH_AudioStream_Result OH_AudioRenderer_CancelMark(OH_AudioRenderer* renderer)
594```
595
596**描述**
597
598取消由[OH_AudioRenderer_SetMarkPosition](#oh_audiorenderer_setmarkposition)设置的标记。
599
600**起始版本:** 12
601
602
603**参数:**
604
605| 参数项 | 描述 |
606| -- | -- |
607| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
608
609**返回:**
610
611| 类型 | 说明 |
612| -- | -- |
613| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
614
615### OH_AudioRenderer_SetVolume()
616
617```
618OH_AudioStream_Result OH_AudioRenderer_SetVolume(OH_AudioRenderer* renderer, float volume)
619```
620
621**描述**
622
623设置当前音频流音量值。
624
625**起始版本:** 12
626
627
628**参数:**
629
630| 参数项 | 描述 |
631| -- | -- |
632| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
633| float volume | 设置当前音频流音量,音量值范围[0.0, 1.0]。 |
634
635**返回:**
636
637| 类型 | 说明 |
638| -- | -- |
639| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数volume无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。<br>         AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。 |
640
641### OH_AudioRenderer_SetVolumeWithRamp()
642
643```
644OH_AudioStream_Result OH_AudioRenderer_SetVolumeWithRamp(OH_AudioRenderer* renderer, float volume, int32_t durationMs)
645```
646
647**描述**
648
649在指定时间范围内使用渐变更改音量。
650
651**起始版本:** 12
652
653
654**参数:**
655
656| 参数项 | 描述 |
657| -- | -- |
658| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
659| float volume | 目标音量值,取值范围[0.0, 1.0]。 |
660| int32_t durationMs | 音量渐变的持续时间,以毫秒为单位。 |
661
662**返回:**
663
664| 类型 | 说明 |
665| -- | -- |
666| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数volume无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。<br>         AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。 |
667
668### OH_AudioRenderer_GetVolume()
669
670```
671OH_AudioStream_Result OH_AudioRenderer_GetVolume(OH_AudioRenderer* renderer, float* volume)
672```
673
674**描述**
675
676获取当前音频流音量值。
677
678**起始版本:** 12
679
680
681**参数:**
682
683| 参数项 | 描述 |
684| -- | -- |
685| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
686| float* volume | 指向一个获取当前音频流音量值的指针。音量值的范围是[0.0, 1.0]。 |
687
688**返回:**
689
690| 类型 | 说明 |
691| -- | -- |
692| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数volume为nullptr。 |
693
694### OH_AudioRenderer_GetUnderflowCount()
695
696```
697OH_AudioStream_Result OH_AudioRenderer_GetUnderflowCount(OH_AudioRenderer* renderer, uint32_t* count)
698```
699
700**描述**
701
702获取当前播放音频流欠载数。
703
704**起始版本:** 12
705
706
707**参数:**
708
709| 参数项 | 描述 |
710| -- | -- |
711| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
712| uint32_t* count | 指向一个用来接收音频流欠载数的变量的指针。 |
713
714**返回:**
715
716| 类型 | 说明 |
717| -- | -- |
718| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数count为nullptr。 |
719
720### OH_AudioRenderer_GetChannelLayout()
721
722```
723OH_AudioStream_Result OH_AudioRenderer_GetChannelLayout(OH_AudioRenderer* renderer,OH_AudioChannelLayout* channelLayout)
724```
725
726**描述**
727
728查询当前音频流声道布局。
729
730**起始版本:** 12
731
732
733**参数:**
734
735| 参数项 | 描述 |
736| -- | -- |
737| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
738| [OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1)* channelLayout | 指向一个用来接收音频流声道布局的变量的指针。 |
739
740**返回:**
741
742| 类型 | 说明 |
743| -- | -- |
744| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
745
746### OH_AudioRenderer_GetEffectMode()
747
748```
749OH_AudioStream_Result OH_AudioRenderer_GetEffectMode(OH_AudioRenderer* renderer,OH_AudioStream_AudioEffectMode* effectMode)
750```
751
752**描述**
753
754查询当前音频流音效模式。
755
756**起始版本:** 12
757
758
759**参数:**
760
761| 参数项 | 描述 |
762| -- | -- |
763| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
764| [OH_AudioStream_AudioEffectMode](capi-native-audiostream-base-h.md#oh_audiostream_audioeffectmode)* effectMode | 指向一个用来接收音频流音效模式的变量的指针。 |
765
766**返回:**
767
768| 类型 | 说明 |
769| -- | -- |
770| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
771
772### OH_AudioRenderer_SetEffectMode()
773
774```
775OH_AudioStream_Result OH_AudioRenderer_SetEffectMode(OH_AudioRenderer* renderer,OH_AudioStream_AudioEffectMode effectMode)
776```
777
778**描述**
779
780设置当前音频流音效模式。
781
782**起始版本:** 12
783
784
785**参数:**
786
787| 参数项 | 描述 |
788| -- | -- |
789| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
790| [OH_AudioStream_AudioEffectMode](capi-native-audiostream-base-h.md#oh_audiostream_audioeffectmode) effectMode | 设置当前音频流的目标音效模式。 |
791
792**返回:**
793
794| 类型 | 说明 |
795| -- | -- |
796| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
797
798### OH_AudioRenderer_GetRendererPrivacy()
799
800```
801OH_AudioStream_Result OH_AudioRenderer_GetRendererPrivacy(OH_AudioRenderer* renderer,OH_AudioStream_PrivacyType* privacy)
802```
803
804**描述**
805
806查询当前播放音频流是否会被其它应用录制。
807
808**起始版本:** 12
809
810
811**参数:**
812
813| 参数项 | 描述 |
814| -- | -- |
815| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
816| [OH_AudioStream_PrivacyType](capi-native-audiostream-base-h.md#oh_audiostream_privacytype)* privacy | 用于返回当前流的内录策略。 |
817
818**返回:**
819
820| 类型 | 说明 |
821| -- | -- |
822| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
823
824### OH_AudioRenderer_SetSilentModeAndMixWithOthers()
825
826```
827OH_AudioStream_Result OH_AudioRenderer_SetSilentModeAndMixWithOthers(OH_AudioRenderer* renderer, bool on)
828```
829
830**描述**
831
832设置静音并发播放模式。<br> 当设置为true,打开静音并发播放模式,系统将让此音频流静音播放,并且不会打断其他音频流。设置为false,将关闭静音并发播放,音频流可根据系统焦点策略抢占焦点。
833
834**起始版本:** 12
835
836
837**参数:**
838
839| 参数项 | 描述 |
840| -- | -- |
841| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
842| bool on | 设置当前音频流的静音并发状态。<br>     true:设置当前播放的音频流静音播放,并且不会打断其它音频流播放。<br>     false:取消当前播放的音频流静音播放,音频流可根据系统焦点策略抢占焦点。 |
843
844**返回:**
845
846| 类型 | 说明 |
847| -- | -- |
848| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
849
850### OH_AudioRenderer_GetSilentModeAndMixWithOthers()
851
852```
853OH_AudioStream_Result OH_AudioRenderer_GetSilentModeAndMixWithOthers(OH_AudioRenderer* renderer, bool* on)
854```
855
856**描述**
857
858获取当前音频流是否开启静音并发播放。
859
860**起始版本:** 12
861
862
863**参数:**
864
865| 参数项 | 描述 |
866| -- | -- |
867| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
868| bool* on | 用于返回当前流的静音并发状态。返回true表示打开,返回false表示关闭。 |
869
870**返回:**
871
872| 类型 | 说明 |
873| -- | -- |
874| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 |
875
876### OH_AudioRenderer_SetDefaultOutputDevice()
877
878```
879OH_AudioStream_Result OH_AudioRenderer_SetDefaultOutputDevice(OH_AudioRenderer* renderer, OH_AudioDevice_Type deviceType)
880```
881
882**描述**
883
884设置默认本机内置发声设备。<br> 本接口仅适用于音频流类型[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage)为语音消息、VoIP语音通话或者VoIP视频通话的场景使用,以及可选的设备类型为听筒、扬声器和系统默认设备。<br> 本接口允许在AudioRenderer创建以后的任何时间被调用,系统会记录应用设置的默认本机内置发声设备。在应用启动播放时,若有外接设备如蓝牙耳机/有线耳机接入,系统优先从外接设备发声;否则系统遵循应用设置的默认本机内置发声设备发声。<br>
885
886**起始版本:** 12
887
888
889**参数:**
890
891| 参数项 | 描述 |
892| -- | -- |
893| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
894| [OH_AudioDevice_Type](capi-native-audio-device-base-h.md#oh_audiodevice_type) deviceType | 指向[OH_AudioDevice_Type](capi-native-audio-device-base-h.md#oh_audiodevice_type)用于设置发声设备类型。可设置的设备类型包括:<br>                                             AUDIO_DEVICE_TYPE_EARPIECE:听筒<br>                                             AUDIO_DEVICE_TYPE_SPEAKER:扬声器<br>                                             AUDIO_DEVICE_TYPE_DEFAULT:系统默认设备 |
895
896**返回:**
897
898| 类型 | 说明 |
899| -- | -- |
900| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                  1. 参数renderer为nullptr;<br>                                                  2. 参数deviceType无效。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。<br>         AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。 |
901
902### OH_AudioRenderer_OnInterruptCallback()
903
904```
905typedef void (*OH_AudioRenderer_OnInterruptCallback)(OH_AudioRenderer* renderer, void* userData,OH_AudioInterrupt_ForceType type, OH_AudioInterrupt_Hint hint)
906```
907
908**描述**
909
910音频流中断事件回调函数。
911
912**起始版本:** 20
913
914
915**参数:**
916
917| 参数项 | 描述 |
918| -- | -- |
919| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
920|  void* userData | 指向应用自定义的数据存储区域。 |
921| [OH_AudioInterrupt_ForceType](capi-native-audiostream-base-h.md#oh_audiointerrupt_forcetype) type | 音频流中断类型。 |
922| [OH_AudioInterrupt_Hint](capi-native-audiostream-base-h.md#oh_audiointerrupt_hint) hint | 音频流中断提示类型。 |
923
924### OH_AudioRenderer_OnErrorCallback()
925
926```
927typedef void (*OH_AudioRenderer_OnErrorCallback)(OH_AudioRenderer* renderer, void* userData,OH_AudioStream_Result error)
928```
929
930**描述**
931
932音频流错误事件回调函数。
933
934**起始版本:** 20
935
936
937**参数:**
938
939| 参数项 | 描述 |
940| -- | -- |
941| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
942|  void* userData | 指向应用自定义的数据存储区域。 |
943| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) error | 音频流播放错误结果。 |
944
945### OH_AudioRenderer_GetFastStatus()
946
947```
948OH_AudioStream_Result OH_AudioRenderer_GetFastStatus(OH_AudioRenderer* renderer,OH_AudioStream_FastStatus* status)
949```
950
951**描述**
952
953获取音频播放过程中的运行状态,是否在低时延状态下工作。
954
955**起始版本:** 20
956
957
958**参数:**
959
960| 参数项 | 描述 |
961| -- | -- |
962| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
963| [OH_AudioStream_FastStatus](capi-native-audiostream-base-h.md#oh_audiostream_faststatus)* status | 指向接收低时延状态的指针。 |
964
965**返回:**
966
967| 类型 | 说明 |
968| -- | -- |
969| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。<br>         AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常,仅在释放状态之前可用。 |
970
971### OH_AudioRenderer_OnFastStatusChange()
972
973```
974typedef void (*OH_AudioRenderer_OnFastStatusChange)(OH_AudioRenderer* renderer,void* userData,OH_AudioStream_FastStatus status)
975```
976
977**描述**
978
979音频播放过程中低时延状态改变事件的回调函数。
980
981**起始版本:** 20
982
983
984**参数:**
985
986| 参数项 | 描述 |
987| -- | -- |
988| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
989| void* userData | 指向应用自定义的数据存储区域。 |
990| status | 返回当前低时延状态。 |
991
992### OH_AudioRenderer_SetLoudnessGain()
993
994```
995OH_AudioStream_Result OH_AudioRenderer_SetLoudnessGain(OH_AudioRenderer* renderer, float loudnessGain)
996```
997
998**描述**
999
1000设置音频播放的响度值。默认的响度值是0.0dB。音频流播放类型必须是音乐[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_MUSIC,<br> 电影或视频[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_MUSIC,<br> 有声读物(包括听书、相声、评书)、听新闻、播客等[OH_AudioStream_Usage](capi-native-audiostream-base-h.md#oh_audiostream_usage).AUDIOSTREAM_USAGE_AUDIOBOOK。<br> 音频流的时延模式必须是普通时延[OH_AudioStream_LatencyMode](capi-native-audiostream-base-h.md#oh_audiostream_latencymode).AUDIOSTREAM_LATENCY_MODE_NORMAL。<br> 本接口不支持通过高清通路播放的音频流设置响度。<br> 由于音频框架与硬件之间存在缓冲区,响度调节实际生效存在延迟,时长取决于缓冲区长度。<br> 建议在不同音频开始播放前预先设置响度,以实现最佳均衡效果。
1001
1002**起始版本:** 20
1003
1004
1005**参数:**
1006
1007| 参数项 | 描述 |
1008| -- | -- |
1009| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
1010| float loudnessGain | 设置播放的响度值(响度值范围为[-90.0, 24.0],单位为dB)。 |
1011
1012**返回:**
1013
1014| 类型 | 说明 |
1015| -- | -- |
1016| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr,或音频流不支持设置响度;<br>                                                 2. 参数loudnessGain不在响度值范围内。 |
1017
1018### OH_AudioRenderer_GetLoudnessGain()
1019
1020```
1021OH_AudioStream_Result OH_AudioRenderer_GetLoudnessGain(OH_AudioRenderer* renderer, float* loudnessGain)
1022```
1023
1024**描述**
1025
1026获取音频流的响度值。
1027
1028**起始版本:** 20
1029
1030
1031**参数:**
1032
1033| 参数项 | 描述 |
1034| -- | -- |
1035| [OH_AudioRenderer](capi-ohaudio-oh-audiorendererstruct.md)* renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](capi-native-audiostreambuilder-h.md#oh_audiostreambuilder_generaterenderer)创建的音频流实例。 |
1036| float* loudnessGain | 指向接收播放响度值的变量的指针。 |
1037
1038**返回:**
1039
1040| 类型 | 说明 |
1041| -- | -- |
1042| [OH_AudioStream_Result](capi-native-audiostream-base-h.md#oh_audiostream_result) | AUDIOSTREAM_SUCCESS:函数执行成功。<br>         AUDIOSTREAM_ERROR_INVALID_PARAM:<br>                                                 1. 参数renderer为nullptr;<br>                                                 2. 参数loudnessGain为nullptr。 |
1043
1044
1045