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