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