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