1# AudioAdapter 2 3 4## **概述** 5 6AudioAdapter音频适配器接口。 7 8提供音频适配器(声卡)对外支持的驱动能力,包括初始化端口、创建Render、创建Capture、获取端口能力集等。 9 10**Since:** 11 121.0 13 14**Version:** 15 161.0 17 18**相关模块:** 19 20[Audio](_audio.md) 21 22**参见:** 23 24[AudioRender](_audio_render.md) 25 26[AudioCapture](_audio_capture.md) 27 28 29## **汇总** 30 31 32### Public 属性 33 34 | 名称 | 描述 | 35| -------- | -------- | 36| ([InitAllPorts](#initallports))(struct AudioAdapter \*adapter) | 初始化一个音频适配器所有的端口驱动 | 37| ([CreateRender](#createrender) )(struct AudioAdapter \*adapter, const struct AudioDeviceDescriptor \*desc, const struct AudioSampleAttributes \*attrs, struct AudioRender \*\*render) | 创建一个音频播放(Render)接口的对象 | 38| ([DestroyRender](#destroyrender) )(struct AudioAdapter \*adapter, struct AudioRender \*render) | 销毁一个音频播放(Render)接口的对象 | 39| ([CreateCapture](#createcapture))(struct AudioAdapter \*adapter, const struct AudioDeviceDescriptor \*desc, const struct AudioSampleAttributes \*attrs, struct AudioCapture \*\*capture) | 创建一个音频录音(Capture)接口的对象 | 40| ([DestroyCapture](#destroycapture))(struct AudioAdapter \*adapter, struct AudioCapture \*capture) | 销毁一个音频录音(Capture)接口的对象 | 41| ([GetPortCapability](#getportcapability) )(struct AudioAdapter \*adapter, struct AudioPort \*port, struct AudioPortCapability \*capability) | 获取一个音频适配器的端口驱动的能力集 | 42| ([SetPassthroughMode](#setpassthroughmode) )(struct AudioAdapter \*adapter, struct AudioPort \*port, enum AudioPortPassthroughMode mode) | 设置音频端口驱动的数据透传模式 | 43| ([GetPassthroughMode](#getpassthroughmode))(struct AudioAdapter \*adapter, struct AudioPort \*port, enum AudioPortPassthroughMode \*mode) | 获取音频端口驱动的数据透传模式 | 44| ([UpdateAudioRoute](#updateaudioroute))(struct AudioAdapter \*adapter, const struct AudioRoute \*route, int32_t \*routeHandle) | 更新一个或多个发送端和接受端之间的路由 | 45| ([ReleaseAudioRoute](#releaseaudioroute))(struct AudioAdapter \*adapter, int32_t routeHandle) | 释放一个音频路由 | 46 47 48## **类成员变量说明** 49 50 51### CreateCapture 52 53 54``` 55int32_t(* AudioAdapter::CreateCapture) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioCapture **capture) 56``` 57 58**描述:** 59 60创建一个音频录音(Capture)接口的对象。 61 62**参数:** 63 64 | 名称 | 描述 | 65| -------- | -------- | 66| adapter | 待操作的音频适配器的指针 | 67| desc | 指向要启动的音频适配器的描述符的指针 | 68| attrs | 指向要打开的音频采样属性的指针 | 69| capture | 指向AudioCapture对象的二级指针 | 70 71**返回:** 72 73成功返回值0,失败返回负值。 74 75**参见:** 76 77[GetPortCapability](#getportcapability) 78 79[DestroyCapture](#destroycapture) 80 81 82### CreateRender 83 84 85``` 86int32_t(* AudioAdapter::CreateRender) (struct AudioAdapter *adapter, const struct AudioDeviceDescriptor *desc, const struct AudioSampleAttributes *attrs, struct AudioRender **render) 87``` 88 89**描述:** 90 91创建一个音频播放(Render)接口的对象。 92 93**参数:** 94 95 | 名称 | 描述 | 96| -------- | -------- | 97| adapter | 待操作的音频适配器对象 | 98| desc | 待打开的音频设备描述符 | 99| attrs | 待打开的音频采样属性 | 100| render | 获取的音频播放接口的对象实例保存到render中 | 101 102**返回:** 103 104成功返回值0,失败返回负值。 105 106**参见:** 107 108[GetPortCapability](#getportcapability) 109 110[DestroyRender](#destroyrender) 111 112 113### DestroyCapture 114 115 116``` 117int32_t(* AudioAdapter::DestroyCapture) (struct AudioAdapter *adapter, struct AudioCapture *capture) 118``` 119 120**描述:** 121 122销毁一个音频录音(Capture)接口的对象。 123 124**参数:** 125 126 | 名称 | 描述 | 127| -------- | -------- | 128| adapter | 待操作的音频适配器对象 | 129| capture | 待操作的音频录音接口对象 | 130 131**注意:** 132 133在音频录音过程中,不能销毁该接口对象。 134 135**返回:** 136 137成功返回值0,失败返回负值。 138 139**参见:** 140 141[CreateCapture](#createcapture) 142 143 144### DestroyRender 145 146 147``` 148int32_t(* AudioAdapter::DestroyRender) (struct AudioAdapter *adapter, struct AudioRender *render) 149``` 150 151**描述:** 152 153销毁一个音频播放(Render)接口的对象。 154 155**参数:** 156 157 | 名称 | 描述 | 158| -------- | -------- | 159| adapter | 待操作的音频适配器对象 | 160| render | 待操作的音频播放接口对象 | 161 162**注意:** 163 164在音频播放过程中,不能销毁该接口对象 165 166**返回:** 167 168成功返回值0,失败返回负值。 169 170**参见:** 171 172[CreateRender](#createrender) 173 174 175### GetPassthroughMode 176 177 178``` 179int(* AudioAdapter::GetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode *mode) 180``` 181 182**描述:** 183 184获取音频端口驱动的数据透传模式。 185 186**参数:** 187 188 | 名称 | 描述 | 189| -------- | -------- | 190| adapter | 待操作的音频适配器对象 | 191| port | 待获取的端口 | 192| mode | 获取的传输模式保存到mode中 | 193 194**返回:** 195 196成功返回值0,失败返回负值。 197 198**参见:** 199 200[SetPassthroughMode](#setpassthroughmode) 201 202 203### GetPortCapability 204 205 206``` 207int(* AudioAdapter::GetPortCapability) (struct AudioAdapter *adapter, struct AudioPort *port, struct AudioPortCapability *capability) 208``` 209 210**描述:** 211 212获取一个音频适配器的端口驱动的能力集。 213 214**参数:** 215 216 | 名称 | 描述 | 217| -------- | -------- | 218| adapter | 待操作的音频适配器对象 | 219| port | 待获取的端口 | 220| capability | 获取的端口能力保存到capability中 | 221 222**返回:** 223 224成功返回值0,失败返回负值。 225 226 227### InitAllPorts 228 229 230``` 231int(* AudioAdapter::InitAllPorts) (struct AudioAdapter *adapter) 232``` 233 234**描述:** 235 236初始化一个音频适配器所有的端口驱动。 237 238在音频服务中,调用其他驱动接口前需要首先调用该接口检查端口是否已经初始化完成: 239 240- 如果端口驱动初始化完成,则函数返回值0, 否则返回负值。 241 242- 如果端口没有初始化完成,则需要等待一段时间(例如100ms)后重新进行检查,直到端口初始化完成后再继续操作。 243 244**参数:** 245 246 | 名称 | 描述 | 247| -------- | -------- | 248| adapter | 待操作的音频适配器对象 | 249 250**返回:** 251 252成功返回值0,失败返回负值。 253 254 255### ReleaseAudioRoute 256 257 258``` 259int32_t(* AudioAdapter::ReleaseAudioRoute) (struct AudioAdapter *adapter, int32_t routeHandle) 260``` 261 262**描述:** 263 264释放一个音频路由。 265 266**参数:** 267 268 | 名称 | 描述 | 269| -------- | -------- | 270| adapter | 待操作的音频适配器对象 | 271| routeHandle | 待释放的路由句柄 | 272 273**返回:** 274 275成功返回值0,失败返回负值。 276 277 278### SetPassthroughMode 279 280 281``` 282int(* AudioAdapter::SetPassthroughMode) (struct AudioAdapter *adapter, struct AudioPort *port, enum AudioPortPassthroughMode mode) 283``` 284 285**描述:** 286 287设置音频端口驱动的数据透传模式。 288 289**参数:** 290 291 | 名称 | 描述 | 292| -------- | -------- | 293| adapter | 待操作的音频适配器对象 | 294| port | 待设置的端口 | 295| mode | 待设置的传输模式 | 296 297**返回:** 298 299成功返回值0,失败返回负值。 300 301**参见:** 302 303[GetPassthroughMode](#getpassthroughmode) 304 305 306### UpdateAudioRoute 307 308 309``` 310int32_t(* AudioAdapter::UpdateAudioRoute) (struct AudioAdapter *adapter, const struct AudioRoute *route, int32_t *routeHandle) 311``` 312 313**描述:** 314 315更新一个或多个发送端和接受端之间的路由。 316 317**参数:** 318 319 | 名称 | 描述 | 320| -------- | -------- | 321| adapter | 待操作的音频适配器对象 | 322| route | 路由信息 | 323| routeHandle | 生成的路由句柄 | 324 325**返回:** 326 327成功返回值0,失败返回负值。 328