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