• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# IAudioAdapter
2
3
4## 概述
5
6AudioAdapter音频适配器接口。
7
8提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建放音、创建录音、获取端口能力集等。
9
103.2
11
12**Version:**
13
141.0
15
16**相关模块:**
17
18[Audio](_audio.md)
19
20
21## 汇总
22
23
24### Public 成员函数
25
26  | 名称 | 描述 |
27| -------- | -------- |
28| [InitAllPorts](#initallports) () | 初始化一个音频适配器所有的端口驱动。 |
29| [CreateRender](#createrender) ([in] struct [AudioDeviceDescriptor](_audio_device_descriptor.md) desc, [in] struct [AudioSampleAttributes](_audio_sample_attributes.md) attrs, [out] [IAudioRender](interface_i_audio_render.md) render) | 创建一个音频播放接口的对象。 |
30| [DestroyRender](#destroyrender) () | 销毁一个音频播放接口的对象。 |
31| [CreateCapture](#createcapture) ([in] struct [AudioDeviceDescriptor](_audio_device_descriptor.md) desc, [in] struct [AudioSampleAttributes](_audio_sample_attributes.md) attrs, [out] [IAudioCapture](interface_i_audio_capture.md) capture) | 创建一个音频录音接口的对象。 |
32| [DestroyCapture](#destroycapture) () | 销毁一个音频录音接口的对象。 |
33| [GetPortCapability](#getportcapability) ([in] struct [AudioPort](_audio_port.md) port, [out] struct [AudioPortCapability](_audio_port_capability.md) capability) | 获取一个音频适配器的端口驱动的能力集。 |
34| [SetPassthroughMode](#setpassthroughmode) ([in] struct [AudioPort](_audio_port.md) port, [in] enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) mode) | 设置音频端口驱动的数据透传模式。 |
35| [GetPassthroughMode](#getpassthroughmode) ([in] struct [AudioPort](_audio_port.md) port, [out] enum [AudioPortPassthroughMode](_audio.md#audioportpassthroughmode) mode) | 获取音频端口驱动的数据透传模式。 |
36| [GetDeviceStatus](#getdevicestatus) ([out] struct [AudioDeviceStatus](_audio_device_status.md) status) | 获取一个音频适配器的设备状态。 |
37| [UpdateAudioRoute](#updateaudioroute) ([in] struct [AudioRoute](_audio_route.md) route, [out] int routeHandle) | 更新音频路由。 |
38| [ReleaseAudioRoute](#releaseaudioroute) ([in] int routeHandle) | 释放音频路由。 |
39| [SetMicMute](#setmicmute) ([in] boolean mute) | 设置音频静音。 |
40| [GetMicMute](#getmicmute) ([out] boolean mute) | 获取音频静音状态。 |
41| [SetVoiceVolume](#setvoicevolume) ([in] float volume) | 设置语音呼叫的音量。 |
42| [SetExtraParams](#setextraparams) ([in] enum [AudioExtParamKey](_audio.md#audioextparamkey) key, [in] String condition, [in] String value) | 根据指定的条件设置音频拓展参数。 |
43| [GetExtraParams](#getextraparams) ([in] enum [AudioExtParamKey](_audio.md#audioextparamkey) key, [in] String condition, [out] String value) | 根据指定条件获取音频扩展参数的取值。 |
44| [RegExtraParamObserver](#regextraparamobserver) ([in] AudioCallback audioCallback, [in] byte cookie) | 注册扩展参数回调函数。 |
45
46
47## 成员函数说明
48
49
50### CreateCapture()
51
52
53```
54IAudioAdapter::CreateCapture ([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, [out] IAudioCapture capture )
55```
56
57**描述:**
58
59创建一个音频录音接口的对象。
60
61**参数:**
62
63  | 名称 | 描述 |
64| -------- | -------- |
65| desc | 待打开的音频设备描述符,详请参考[AudioDeviceDescriptor](_audio_device_descriptor.md)。 |
66| attrs | 待打开的音频采样属性,详请参考[AudioSampleAttributes](_audio_sample_attributes.md)。 |
67| capture | 获取的音频录音接口的对象实例保存到capture中,详请参考[IAudioCapture](interface_i_audio_capture.md)。 |
68
69**返回:**
70
71成功返回值0,失败返回负值。
72
73**参见:**
74
75[CreateCapture](#createcapture)
76
77
78### CreateRender()
79
80
81```
82IAudioAdapter::CreateRender ([in] struct AudioDeviceDescriptor desc, [in] struct AudioSampleAttributes attrs, [out] IAudioRender render )
83```
84
85**描述:**
86
87创建一个音频播放接口的对象。
88
89**参数:**
90
91  | 名称 | 描述 |
92| -------- | -------- |
93| desc | 待打开的音频设备描述符,详请参考[AudioDeviceDescriptor](_audio_device_descriptor.md)。 |
94| attrs | 待打开的音频采样属性,详请参考[AudioSampleAttributes](_audio_sample_attributes.md)。 |
95| render | 获取的音频播放接口的对象实例保存到render中,详请参考[IAudioRender](interface_i_audio_render.md)。 |
96
97**返回:**
98
99成功返回值0,失败返回负值。
100
101**参见:**
102
103[GetPortCapability](#getportcapability)
104
105[DestroyRender](#destroyrender)
106
107
108### DestroyCapture()
109
110
111```
112IAudioAdapter::DestroyCapture ()
113```
114
115**描述:**
116
117销毁一个音频录音接口的对象。
118
119**注意:**
120
121在音频录音过程中,不能销毁该接口对象。
122
123**返回:**
124
125成功返回值0,失败返回负值。
126
127**参见:**
128
129[CreateCapture](#createcapture)
130
131
132### DestroyRender()
133
134
135```
136IAudioAdapter::DestroyRender ()
137```
138
139**描述:**
140
141销毁一个音频播放接口的对象。
142
143**注意:**
144
145在音频播放过程中,不能销毁该接口对象。
146
147**返回:**
148
149成功返回值0,失败返回负值。
150
151**参见:**
152
153[CreateRender](#createrender)
154
155
156### GetDeviceStatus()
157
158
159```
160IAudioAdapter::GetDeviceStatus ([out] struct AudioDeviceStatus status)
161```
162
163**描述:**
164
165获取一个音频适配器的设备状态。
166
167**参数:**
168
169  | 名称 | 描述 |
170| -------- | -------- |
171| status | 获取的设备状态保存到status中,详请参考[AudioDeviceStatus](_audio_device_status.md)。 |
172
173**返回:**
174
175成功返回值0,失败返回负值。
176
177
178### GetExtraParams()
179
180
181```
182IAudioAdapter::GetExtraParams ([in] enum AudioExtParamKey key, [in] String condition, [out] String value )
183```
184
185**描述:**
186
187根据指定条件获取音频扩展参数的取值。
188
189- condition为多个键值对组成的字符串,多个键值对之间通过分号分割,键值对的格式为"keytype=keyvalue"。
190
191- 当输入的key值为AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME时,condition的格式必须为:
192    EVENT_TYPE=xxx;VOLUME_GROUP_ID=xxx;AUDIO_VOLUME_TYPE=xxx;
193  - EVENT_TYPE 表示音量事件类型: 其中1表示设置音量, 4表示设置静音。
194
195  - VOLUME_GROUP_ID 表示待查询的音频扩展参数相关的音量组。
196
197  - AUDIO_VOLUME_TYPE 表示待查询的音频扩展参数相关的音量类型。
198
199**参数:**
200
201  | 名称 | 描述 |
202| -------- | -------- |
203| key | 指定的扩展参数键类型,详请参考[AudioExtParamKey](_audio.md#audioextparamkey)。 |
204| condition | 指定的扩展参数查询条件。 |
205| value | 待返回的指定扩展参数条件的当前值。 |
206
207**返回:**
208
209成功返回值0,失败返回负值。
210
211
212### GetMicMute()
213
214
215```
216IAudioAdapter::GetMicMute ([out] boolean mute)
217```
218
219**描述:**
220
221获取音频静音状态。
222
223**参数:**
224
225  | 名称 | 描述 |
226| -------- | -------- |
227| mute | 获取的静音状态保存到mute中,true表示静音,false表示非静音。 |
228
229**返回:**
230
231成功返回值0,失败返回负值。
232
233**参见:**
234
235[GetMicMute](#getmicmute)
236
237
238### GetPassthroughMode()
239
240
241```
242IAudioAdapter::GetPassthroughMode ([in] struct AudioPort port, [out] enum AudioPortPassthroughMode mode )
243```
244
245**描述:**
246
247获取音频端口驱动的数据透传模式。
248
249**参数:**
250
251  | 名称 | 描述 |
252| -------- | -------- |
253| port | 待获取的端口,详请参考[AudioPort](_audio_port.md)。 |
254| mode | 获取的传输模式保存到mode中,详请参考[AudioPortPassthroughMode](_audio.md#audioportpassthroughmode)。 |
255
256**返回:**
257
258成功返回值0,失败返回负值。
259
260**参见:**
261
262[SetPassthroughMode](#setpassthroughmode)
263
264
265### GetPortCapability()
266
267
268```
269IAudioAdapter::GetPortCapability ([in] struct AudioPort port, [out] struct AudioPortCapability capability )
270```
271
272**描述:**
273
274获取一个音频适配器的端口驱动的能力集。
275
276**参数:**
277
278  | 名称 | 描述 |
279| -------- | -------- |
280| port | 待获取的端口,详请参考[AudioPort](_audio_port.md)。 |
281| capability | 获取的端口能力保存到capability中,详请参考[AudioPortCapability](_audio_port_capability.md)。 |
282
283**返回:**
284
285成功返回值0,失败返回负值。
286
287
288### InitAllPorts()
289
290
291```
292IAudioAdapter::InitAllPorts ()
293```
294
295**描述:**
296
297初始化一个音频适配器所有的端口驱动。
298
299在音频服务中,调用其他驱动接口前需要先调用该接口检查端口是否已经初始化完成,如果端口没有初始化完成, 则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作。
300
301**返回:**
302
303初始化完成返回值0,初始化失败返回负值。
304
305
306### RegExtraParamObserver()
307
308
309```
310IAudioAdapter::RegExtraParamObserver ([in] AudioCallback audioCallback, [in] byte cookie )
311```
312
313**描述:**
314
315注册扩展参数回调函数。
316
317**参数:**
318
319  | 名称 | 描述 |
320| -------- | -------- |
321| audioCallback | 待注册的回调函数,详请参考[IAudioCallback](interface_i_audio_callback.md)。 |
322| cookie | 用于传递数据。 |
323
324**返回:**
325
326成功返回值0,失败返回负值。
327
328
329### ReleaseAudioRoute()
330
331
332```
333IAudioAdapter::ReleaseAudioRoute ([in] int routeHandle)
334```
335
336**描述:**
337
338释放音频路由。
339
340**参数:**
341
342  | 名称 | 描述 |
343| -------- | -------- |
344| routeHandle | 待释放的音频路由句柄。 |
345
346**返回:**
347
348成功返回值0,失败返回负值。
349
350
351### SetExtraParams()
352
353
354```
355IAudioAdapter::SetExtraParams ([in] enum AudioExtParamKey key, [in] String condition, [in] String value )
356```
357
358**描述:**
359
360根据指定的条件设置音频拓展参数。
361
362- condition为多个键值对组成的字符串,多个键值对之间通过分号分割,键值对的格式为"keytype=keyvalue"。
363
364- 当输入的key值为AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME时,condition的格式必须为:
365    EVENT_TYPE=xxx;VOLUME_GROUP_ID=xxx;AUDIO_VOLUME_TYPE=xxx;
366  - EVENT_TYPE 表示音量事件类型: 其中1表示设置音量, 4表示设置静音。
367
368  - VOLUME_GROUP_ID 表示待设置的音频扩展参数相关的音量组。
369
370  - AUDIO_VOLUME_TYPE 表示待设置的音频扩展参数相关的音量类型。
371
372**参数:**
373
374  | 名称 | 描述 |
375| -------- | -------- |
376| key | 指定的扩展参数键类型,详请参考[AudioDrainNotifyType](_audio.md#audiodrainnotifytype)。 |
377| condition | 指定的扩展参数查询条件。 |
378| value | 指定的扩展参数条件值。 |
379
380**返回:**
381
382成功返回值0,失败返回负值。
383
384
385### SetMicMute()
386
387
388```
389IAudioAdapter::SetMicMute ([in] boolean mute)
390```
391
392**描述:**
393
394设置音频静音。
395
396**参数:**
397
398  | 名称 | 描述 |
399| -------- | -------- |
400| mute | 表示是否将音频静音,true表示静音,false表示非静音。 |
401
402**返回:**
403
404成功返回值0,失败返回负值。
405
406**参见:**
407
408[SetMicMute](#setmicmute)
409
410
411### SetPassthroughMode()
412
413
414```
415IAudioAdapter::SetPassthroughMode ([in] struct AudioPort port, [in] enum AudioPortPassthroughMode mode )
416```
417
418**描述:**
419
420设置音频端口驱动的数据透传模式。
421
422**参数:**
423
424  | 名称 | 描述 |
425| -------- | -------- |
426| port | 待设置的端口,详请参考[AudioPort](_audio_port.md)。 |
427| mode | 待设置的传输模式,详请参考[AudioDrainNotifyType](_audio.md#audiodrainnotifytype)。 |
428
429**返回:**
430
431成功返回值0,失败返回负值。
432
433**参见:**
434
435[GetPassthroughMode](#getpassthroughmode)
436
437
438### SetVoiceVolume()
439
440
441```
442IAudioAdapter::SetVoiceVolume ([in] float volume)
443```
444
445**描述:**
446
447设置语音呼叫的音量。
448
449**参数:**
450
451  | 名称 | 描述 |
452| -------- | -------- |
453| volume | 待设置的音量值,范围为(0.0-1.0),0.0表示最小音量值,1.0表示最大音量值。 |
454
455**返回:**
456
457成功返回值0,失败返回负值。
458
459**参见:**
460
461[SetVoiceVolume](#setvoicevolume)
462
463
464### UpdateAudioRoute()
465
466
467```
468IAudioAdapter::UpdateAudioRoute ([in] struct AudioRoute route, [out] int routeHandle )
469```
470
471**描述:**
472
473更新音频路由。
474
475**参数:**
476
477  | 名称 | 描述 |
478| -------- | -------- |
479| route | 待更新的路由,详请参考[AudioRoute](_audio_route.md)。 |
480| routeHandle | 更新后的音频路由句柄保存到routeHandle中。 |
481
482**返回:**
483
484成功返回值0,失败返回负值。
485