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