• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# AudioRender
2
3
4## **概述**
5
6AudioRender音频播放接口。
7
8提供音频播放支持的驱动能力,包括音频控制、音频属性、音频场景、音频音量、获取硬件延迟时间、播放音频帧数据(Render frame)等。
9
10**Since:**
11
121.0
13
14**Version:**
15
161.0
17
18**相关模块:**
19
20[Audio](_audio.md)
21
22**参见:**
23
24[AudioControl](_audio_control.md)
25
26[AudioAttribute](_audio_attribute.md)
27
28[AudioScene](_audio_scene.md)
29
30[AudioVolume](_audio_volume.md)
31
32
33## **汇总**
34
35
36### Public 属性
37
38  | 名称 | 描述 |
39| -------- | -------- |
40| control | 音频控制能力接口,详情参考[AudioControl](_audio_control.md)。 |
41| attr | 音频属性能力接口,详情参考[AudioAttribute](_audio_attribute.md)。 |
42| scene | 音频场景能力接口,详情参考[AudioScene](_audio_scene.md)。 |
43| volume | 音频音量能力接口,详情参考[AudioVolume](_audio_volume.md)。 |
44| ([GetLatency](#getlatency))(struct AudioRender \*render, uint32_t \*ms) | 获取音频硬件驱动估计的延迟时间。 |
45| ([RenderFrame](#renderframe))(struct AudioRender \*render, const void \*frame, uint64_t requestBytes, uint64_t \*replyBytes) | 往音频驱动中播放(Render)一帧输出数据(放音,音频下行数据)。 |
46| ([GetRenderPosition](#getrenderposition))(struct AudioRender \*render, uint64_t \*frames, struct AudioTimeStamp \*time) | 获取音频输出帧数的上一次计数。 |
47| ([SetRenderSpeed](#setrenderspeed))(struct AudioRender \*render, float speed) | 设置一个音频的播放速度。 |
48| ([GetRenderSpeed](#getrenderspeed))(struct AudioRender \*render, float \*speed) | 获取一个音频当前的播放速度。 |
49| ([SetChannelMode](#setchannelmode))(struct AudioRender \*render, enum AudioChannelMode mode) | 设置音频播放的通道模式。 |
50| ([GetChannelMode](#getchannelmode))(struct AudioRender \*render, enum AudioChannelMode \*mode) | 获取音频播放当前的通道模式。 |
51| ([RegCallback](#regcallback) )(struct AudioRender \*render, RenderCallback callback, void \*cookie) | 注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。 |
52| ([DrainBuffer](#drainbuffer))(struct AudioRender \*render, enum AudioDrainNotifyType \*type) | 排空缓冲区中的数据。 |
53
54
55## **类成员变量说明**
56
57
58### DrainBuffer
59
60
61```
62int32_t(* AudioRender::DrainBuffer) (struct AudioRender *render, enum AudioDrainNotifyType *type)
63```
64
65**描述:**
66
67排空缓冲区中的数据。
68
69**参数:**
70
71  | 名称 | 描述 |
72| -------- | -------- |
73| render | 输入参数,待操作的音频播放接口对象。 |
74| type | 输入参数,DrainBuffer的操作类型,详情请参考[AudioDrainNotifyType](_audio.md#audiodrainnotifytype)。 |
75
76**返回:**
77
78成功返回值0,失败返回负值。
79
80**参见:**
81
82[RegCallback](#regcallback)
83
84
85### GetChannelMode
86
87
88```
89int32_t(* AudioRender::GetChannelMode) (struct AudioRender *render, enum AudioChannelMode *mode)
90```
91
92**描述:**
93
94获取音频播放当前的通道模式。
95
96**参数:**
97
98  | 名称 | 描述 |
99| -------- | -------- |
100| render | 输入参数,待操作的音频播放接口对象。|
101| mode | 输出参数,获取的通道模式保存到mode中。 |
102
103**返回:**
104
105成功返回值0,失败返回负值。
106
107**参见:**
108
109[SetChannelMode](#setchannelmode)
110
111
112### GetLatency
113
114
115```
116int32_t(* AudioRender::GetLatency) (struct AudioRender *render, uint32_t *ms)
117```
118
119**描述:**
120
121获取音频硬件驱动估计的延迟时间。
122
123**参数:**
124
125  | 名称 | 描述 |
126| -------- | -------- |
127| render | 输入参数,待操作的音频播放接口对象。 |
128| ms | 输出参数,获取的延迟时间(单位:毫秒)保存到ms中。 |
129
130**返回:**
131
132成功返回值0,失败返回负值。
133
134
135### GetRenderPosition
136
137
138```
139int32_t(* AudioRender::GetRenderPosition) (struct AudioRender *render, uint64_t *frames, struct AudioTimeStamp *time)
140```
141
142**描述:**
143
144获取音频输出帧数的上一次计数。
145
146**参数:**
147
148  | 名称 | 描述 |
149| -------- | -------- |
150| render | 输入参数,待操作的音频播放接口对象。 |
151| frames | 输出参数,获取的音频帧计数保存到frames中。 |
152| time | 输出参数,获取的关联时间戳保存到time中。 |
153
154**返回:**
155
156成功返回值0,失败返回负值。
157
158**参见:**
159
160[RenderFrame](#renderframe)
161
162
163### GetRenderSpeed
164
165
166```
167int32_t(* AudioRender::GetRenderSpeed) (struct AudioRender *render, float *speed)
168```
169
170**描述:**
171
172获取一个音频当前的播放速度。
173
174**参数:**
175
176  | 名称 | 描述 |
177| -------- | -------- |
178| render | 输入参数,待操作的音频播放接口对象。 |
179| speed | 输出参数,获取的播放速度保存到speed中。 |
180
181**返回:**
182
183成功返回值0,失败返回负值。
184
185**参见:**
186
187[SetRenderSpeed](#setrenderspeed)
188
189
190### RegCallback
191
192
193```
194int32_t(* AudioRender::RegCallback) (struct AudioRender *render, RenderCallback callback, void *cookie)
195```
196
197**描述:**
198
199注册音频回调函数,用于放音过程中缓冲区数据写、DrainBuffer完成通知。
200
201**参数:**
202
203  | 名称 | 描述 |
204| -------- | -------- |
205| render | 输入参数,待操作的音频播放接口对象。 |
206| callback | 输入参数,注册的回调函数。 |
207| cookie | 输入参数,回调函数的入参。 |
208
209**返回:**
210
211成功返回值0,失败返回负值。
212
213**参见:**
214
215[RegCallback](#regcallback)
216
217
218### RenderFrame
219
220
221```
222int32_t(* AudioRender::RenderFrame) (struct AudioRender *render, const void *frame, uint64_t requestBytes, uint64_t *replyBytes)
223```
224
225**描述:**
226
227向音频驱动中播放(Render)一帧输出数据(放音,音频下行数据)。
228
229**参数:**
230
231  | 名称 | 描述 |
232| -------- | -------- |
233| render | 输入参数,待操作的音频播放接口对象。 |
234| frame | 输入参数,待写入的输出数据的音频frame。 |
235| requestBytes | 输入参数,待写入的输出数据的音频frame大小(字节数)。 |
236| replyBytes | 输出参数,实际写入的音频数据长度(字节数),获取后保存到replyBytes中。 |
237
238**返回:**
239
240成功返回值0,失败返回负值。
241
242
243### SetChannelMode
244
245
246```
247int32_t(* AudioRender::SetChannelMode) (struct AudioRender *render, enum AudioChannelMode mode)
248```
249
250**描述:**
251
252设置音频播放的通道模式。
253
254**参数:**
255
256  | 名称 | 描述 |
257| -------- | -------- |
258| render | 输入参数,待操作的音频播放接口对象。 |
259| speed | 输入参数,待设置的通道模式。 |
260
261**返回:**
262
263成功返回值0,失败返回负值。
264
265**参见:**
266
267[GetChannelMode](#getchannelmode)
268
269
270### SetRenderSpeed
271
272
273```
274int32_t(* AudioRender::SetRenderSpeed) (struct AudioRender *render, float speed)
275```
276
277**描述:**
278
279设置一个音频的播放速度。
280
281**参数:**
282
283  | 名称 | 描述 |
284| -------- | -------- |
285| render | 输入参数,待操作的音频播放接口对象。 |
286| speed | 输入参数,待设置的播放速度。 |
287
288**返回:**
289
290成功返回值0,失败返回负值。
291
292**参见:**
293
294[GetRenderSpeed](#getrenderspeed)
295