• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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) () | 初始化一个音频适配器所有的端口驱动。 在音频服务中,调用其他驱动接口前需要先调用该接口检查端口是否已经初始化完成,如果端口没有初始化完成, 则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作。 |
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指针对象。 |
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指针对象。 |
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指针对象。 |
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指针对象。 |
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指针对象。 |
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
214condition为多个键值对组成的字符串,多个键值对之间通过分号分割,键值对的格式为"keytype=keyvalue"。 当输入的key值为AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME时,condition的格式必须为: "EVENT_TYPE=xxx;VOLUME_GROUP_ID=xxx;AUDIO_VOLUME_TYPE=xxx;"
215
216- EVENT_TYPE 表示音量事件类型:其中1表示设置音量,4表示设置静音。
217
218- VOLUME_GROUP_ID 表示待查询的音频扩展参数相关的音量组。
219
220- AUDIO_VOLUME_TYPE 表示待查询的音频扩展参数相关的音量类型。
221
222**起始版本:** 4.1
223
224**参数:**
225
226| 名称 | 描述 |
227| -------- | -------- |
228| adapter | 调用当前函数的AudioAdapter指针对象。 |
229| key | 指定的扩展参数键类型,详请参考[AudioExtParamKey](_hdi_audio_v20.md#audioextparamkey)。 |
230| condition | 指定的扩展参数查询条件。 |
231| value | 待返回的指定扩展参数条件的当前值。 |
232| lenth | value的长度 |
233
234**返回:**
235
236成功返回值0,失败返回负值。
237
238
239### GetMicMute()
240
241```
242IAudioAdapter::GetMicMute ([out] boolean mute)
243```
244
245**描述**
246
247获取音频静音状态。
248
249**起始版本:** 4.1
250
251**参数:**
252
253| 名称 | 描述 |
254| -------- | -------- |
255| adapter | 调用当前函数的AudioAdapter指针对象。 |
256| mute | 获取的静音状态保存到mute中,true表示静音,false表示非静音。 |
257
258**返回:**
259
260成功返回值0,失败返回负值。
261
262**参见:**
263
264[GetMicMute](#getmicmute)
265
266
267### GetPassthroughMode()
268
269```
270IAudioAdapter::GetPassthroughMode ([in] struct AudioPort port, [out] enum AudioPortPassthroughMode mode )
271```
272
273**描述**
274
275获取音频端口驱动的数据透传模式。
276
277**起始版本:** 4.1
278
279**参数:**
280
281| 名称 | 描述 |
282| -------- | -------- |
283| adapter | 调用当前函数的AudioAdapter指针对象。 |
284| port | 待获取的端口,详请参考[AudioPort](_audio_port_v20.md)。 |
285| mode | 获取的传输模式保存到mode中,详请参考[AudioPortPassthroughMode](_hdi_audio_v20.md#audioportpassthroughmode)。 |
286
287**返回:**
288
289成功返回值0,失败返回负值。
290
291**参见:**
292
293[SetPassthroughMode](#setpassthroughmode)
294
295
296### GetPortCapability()
297
298```
299IAudioAdapter::GetPortCapability ([in] struct AudioPort port, [out] struct AudioPortCapability capability )
300```
301
302**描述**
303
304获取一个音频适配器的端口驱动的能力集。
305
306**起始版本:** 4.1
307
308**参数:**
309
310| 名称 | 描述 |
311| -------- | -------- |
312| adapter | 调用当前函数的AudioAdapter指针对象。 |
313| port | 待获取的端口,详请参考[AudioPort](_audio_port_v20.md)。 |
314| capability | 获取的端口能力保存到capability中,详请参考[AudioPortCapability](_audio_port_capability_v20.md)。 |
315
316**返回:**
317
318成功返回值0,失败返回负值。
319
320
321### InitAllPorts()
322
323```
324IAudioAdapter::InitAllPorts ()
325```
326
327**描述**
328
329初始化一个音频适配器所有的端口驱动。 在音频服务中,调用其他驱动接口前需要先调用该接口检查端口是否已经初始化完成,如果端口没有初始化完成, 则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作。
330
331**起始版本:** 4.1
332
333**参数:**
334
335| 名称 | 描述 |
336| -------- | -------- |
337| adapter | 调用当前函数的AudioAdapter指针对象。 |
338
339**返回:**
340
341初始化完成返回值0,初始化失败返回负值。
342
343
344### RegExtraParamObserver()
345
346```
347IAudioAdapter::RegExtraParamObserver ([in] IAudioCallback audioCallback, [in] byte cookie )
348```
349
350**描述**
351
352注册扩展参数回调函数。
353
354**起始版本:** 3.2
355
356**参数:**
357
358| 名称 | 描述 |
359| -------- | -------- |
360| adapter | 调用当前函数的AudioAdapter指针对象。 |
361| callback | 待注册的回调函数,详请参考[IAudioCallback](interface_i_audio_callback_v20.md)。 |
362| cookie | 用于传递数据。 |
363
364**返回:**
365
366成功返回值0,失败返回负值。
367
368
369### ReleaseAudioRoute()
370
371```
372IAudioAdapter::ReleaseAudioRoute ([in] int routeHandle)
373```
374
375**描述**
376
377释放音频路由。
378
379**起始版本:** 4.1
380
381**参数:**
382
383| 名称 | 描述 |
384| -------- | -------- |
385| adapter | 调用当前函数的AudioAdapter指针对象。 |
386| routeHandle | 待释放的音频路由句柄。 |
387
388**返回:**
389
390成功返回值0,失败返回负值。
391
392
393### SetExtraParams()
394
395```
396IAudioAdapter::SetExtraParams ([in] enum AudioExtParamKey key, [in] String condition, [in] String value )
397```
398
399**描述**
400
401根据指定的条件设置音频拓展参数。
402
403condition为多个键值对组成的字符串,多个键值对之间通过分号分割,键值对的格式为"keytype=keyvalue"。 当输入的key值为AudioExtParamKey::AUDIO_EXT_PARAM_KEY_VOLUME时,condition的格式必须为: "EVENT_TYPE=xxx;VOLUME_GROUP_ID=xxx;AUDIO_VOLUME_TYPE=xxx;"
404
405- EVENT_TYPE 表示音量事件类型:其中1表示设置音量,4表示设置静音。
406
407- VOLUME_GROUP_ID 表示待查询的音频扩展参数相关的音量组。
408
409- AUDIO_VOLUME_TYPE 表示待查询的音频扩展参数相关的音量类型。
410
411**起始版本:** 4.1
412
413**参数:**
414
415| 名称 | 描述 |
416| -------- | -------- |
417| adapter | 调用当前函数的AudioAdapter指针对象。 |
418| key | 指定的扩展参数键类型,详请参考[AudioExtParamKey](_hdi_audio_v20.md#audioextparamkey)。 |
419| condition | 指定的扩展参数查询条件。 |
420| value | 指定的扩展参数条件值。 |
421
422**返回:**
423
424成功返回值0,失败返回负值。
425
426
427### SetMicMute()
428
429```
430IAudioAdapter::SetMicMute ([in] boolean mute)
431```
432
433**描述**
434
435设置音频静音。
436
437**起始版本:** 4.1
438
439**参数:**
440
441| 名称 | 描述 |
442| -------- | -------- |
443| adapter | 调用当前函数的AudioAdapter指针对象。 |
444| mute | 表示是否将音频静音,true表示静音,false表示非静音。 |
445
446**返回:**
447
448成功返回值0,失败返回负值。
449
450**参见:**
451
452[SetMicMute](#setmicmute)
453
454
455### SetPassthroughMode()
456
457```
458IAudioAdapter::SetPassthroughMode ([in] struct AudioPort port, [in] enum AudioPortPassthroughMode mode )
459```
460
461**描述**
462
463设置音频端口驱动的数据透传模式。
464
465**起始版本:** 4.1
466
467**参数:**
468
469| 名称 | 描述 |
470| -------- | -------- |
471| adapter | 调用当前函数的AudioAdapter指针对象。 |
472| port | 待设置的端口,详请参考[AudioPort](_audio_port_v20.md)。 |
473| mode | 待设置的传输模式,详请参考[AudioPortPassthroughMode](_hdi_audio_v20.md#audioportpassthroughmode)。 |
474
475**返回:**
476
477成功返回值0,失败返回负值。
478
479**参见:**
480
481[GetPassthroughMode](#getpassthroughmode)
482
483
484### SetVoiceVolume()
485
486```
487IAudioAdapter::SetVoiceVolume ([in] float volume)
488```
489
490**描述**
491
492设置语音呼叫的音量。
493
494音量范围从0.0到1.0。如果音频服务中的音量水平在0到15的范围内, 0.0表示音频静音,1.0指示最大音量级别(15)。
495
496**起始版本:** 4.1
497
498**参数:**
499
500| 名称 | 描述 |
501| -------- | -------- |
502| adapter | 调用当前函数的AudioAdapter指针对象。 |
503| volume | 待设置的音量值,范围为(0.0-1.0),0.0表示最小音量值,1.0表示最大音量值。 |
504
505**返回:**
506
507成功返回值0,失败返回负值。
508
509**参见:**
510
511GetVolume
512
513
514### UpdateAudioRoute()
515
516```
517IAudioAdapter::UpdateAudioRoute ([in] struct AudioRoute route, [out] int routeHandle )
518```
519
520**描述**
521
522更新音频路由。
523
524**起始版本:** 4.1
525
526**参数:**
527
528| 名称 | 描述 |
529| -------- | -------- |
530| adapter | 调用当前函数的AudioAdapter指针对象。 |
531| route | 待更新的路由,详请参考[AudioRoute](_audio_route_v20.md)。 |
532| routeHandle | 更新后的音频路由句柄保存到routeHandle中。 |
533
534**返回:**
535
536成功返回值0,失败返回负值。
537