1# AudioAttribute 2 3 4## **概述** 5 6AudioAttribute音频属性接口。 7 8提供音频播放(Render)或录音(Capture)需要的公共属性驱动能力,包括获取帧(frame)信息、设置采样属性等。 9 10**Since:** 11 121.0 13 14**Version:** 15 161.0 17 18**相关模块:** 19 20[Audio](_audio.md) 21 22 23## **汇总** 24 25 26### Public 属性 27 28 | 名称 | 描述 | 29| -------- | -------- | 30| ([GetFrameSize](#getframesize))(AudioHandle handle, uint64_t \*size) | 获取音频帧(frame)的大小 | 31| ([GetFrameCount](#getframecount))(AudioHandle handle, uint64_t \*count) | 获取音频buffer中的音频帧数 | 32| ([SetSampleAttributes](#setsampleattributes))(AudioHandle handle, const struct AudioSampleAttributes \*attrs) | 设置音频采样的属性参数 | 33| ([GetSampleAttributes](#getsampleattributes))(AudioHandle handle, struct AudioSampleAttributes \*attrs) | 获取音频采样的属性参数 | 34| ([GetCurrentChannelId](#getcurrentchannelid))(AudioHandle handle, uint32_t \*channelId) | 获取音频的数据通道ID | 35| ([SetExtraParams](#setextraparams))(AudioHandle handle, const char \*keyValueList) | 设置音频拓展参数 | 36| ([GetExtraParams](#getextraparams))(AudioHandle handle, char \*keyValueList) | 获取音频拓展参数 | 37| ([ReqMmapBuffer](#reqmmapbuffer))(AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescriptor \*desc) | 请求Mmap缓冲区 | 38| ([GetMmapPosition](#getmmapposition))(AudioHandle handle, uint64_t \*frames, struct AudioTimeStamp \*time) | 获取当前Mmap的读/写位置 | 39| ([AddAudioEffect](#addaudioeffect))(AudioHandle handle, uint64_t effectid) | 添加音频效果算法实例 | 40| ([RemoveAudioEffect](#removeaudioeffect))(AudioHandle handle, uint64_t effectid) | 移除音频效果算法实例 | 41| ([GetFrameBufferSize](#getframebuffersize))(AudioHandle handle, uint64_t \*bufferSize) | 获取播放或录音的缓冲区大小 | 42 43 44## **类成员变量说明** 45 46 47### AddAudioEffect 48 49 50``` 51int32_t (*AudioAttribute::AddAudioEffect)(AudioHandle handle, uint64_t effectid) 52``` 53 54**描述:** 55 56添加音频效果算法实例。 57 58**参数:** 59 60 | 名称 | 描述 | 61| -------- | -------- | 62| handle | 输入参数,待操作的音频句柄。 | 63| effectid | 输入参数,待添加的音频效果算法实例ID。 | 64 65**返回:** 66 67成功返回值0,失败返回负值。 68 69 70### GetCurrentChannelId 71 72 73``` 74int32_t(* AudioAttribute::GetCurrentChannelId) (AudioHandle handle, uint32_t *channelId) 75``` 76 77**描述:** 78 79获取音频的数据通道ID。 80 81**参数:** 82 83 | 名称 | 描述 | 84| -------- | -------- | 85| handle | 输入参数,待操作的音频句柄。 | 86| channelId | 输出参数,获取的通道ID保存到channelId中。 | 87 88**返回:** 89 90成功返回值0,失败返回负值。 91 92 93### GetExtraParams 94 95 96``` 97int32_t(* AudioAttribute::GetExtraParams) (AudioHandle handle, char *keyValueList) 98``` 99 100**描述:** 101 102获取音频拓展参数。 103 104**参数:** 105 106 | 名称 | 描述 | 107| -------- | -------- | 108| handle | 输入参数,待操作的音频句柄。 | 109| keyValueList | 输出参数,拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 | 110 111**返回:** 112 113成功返回值0,失败返回负值。 114 115 116### GetFrameBufferSize 117 118 119``` 120int32_t (*AudioAttribute::GetFrameBufferSize)(AudioHandle handle, uint64_t *bufferSize) 121``` 122 123**描述:** 124 125获取播放或录音的缓冲区大小。 126 127**参数:** 128 129 | 名称 | 描述 | 130| -------- | -------- | 131| handle | 输入参数,待操作的音频句柄。 | 132| bufferSize | 输出参数,获取的缓冲区大小保存到bufferSize中。 | 133 134**返回:** 135 136成功返回值0,失败返回负值。 137 138 139### GetFrameCount 140 141 142``` 143int32_t(* AudioAttribute::GetFrameCount) (AudioHandle handle, uint64_t *count) 144``` 145 146**描述:** 147 148获取音频buffer中的音频帧数。 149 150**参数:** 151 152 | 名称 | 描述 | 153| -------- | -------- | 154| handle | 输入参数,待操作的音频句柄。 | 155| count | 输出参数,一个音频buffer中包含的音频帧数,获取后保存到count中。 | 156 157**返回:** 158 159成功返回值0,失败返回负值。 160 161 162### GetFrameSize 163 164 165``` 166int32_t(* AudioAttribute::GetFrameSize) (AudioHandle handle, uint64_t *size) 167``` 168 169**描述:** 170 171获取音频帧(frame)的大小,即一帧音频数据的长度(字节数)。 172 173**参数:** 174 175 | 名称 | 描述 | 176| -------- | -------- | 177| handle | 输入参数,待操作的音频句柄。 | 178| size | 输出参数,获取的音频帧大小(字节数)保存到size中。 | 179 180**返回:** 181 182成功返回值0,失败返回负值。 183 184 185### GetMmapPosition 186 187 188``` 189int32_t(* AudioAttribute::GetMmapPosition) (AudioHandle handle, uint64_t *frames, struct AudioTimeStamp *time) 190``` 191 192**描述:** 193 194获取当前Mmap的读/写位置。 195 196**参数:** 197 198 | 名称 | 描述 | 199| -------- | -------- | 200| handle | 输入参数,待操作的音频句柄。 | 201| frames | 输出参数,获取的音频帧计数保存到frames中。 | 202| time | 输出参数,获取的关联时间戳保存到time中。 | 203 204**返回:** 205 206成功返回值0,失败返回负值。 207 208 209### GetSampleAttributes 210 211 212``` 213int32_t(* AudioAttribute::GetSampleAttributes) (AudioHandle handle, struct AudioSampleAttributes *attrs) 214``` 215 216**描述:** 217 218获取音频采样的属性参数。 219 220**参数:** 221 222 | 名称 | 描述 | 223| -------- | -------- | 224| handle | 输入参数,待操作的音频句柄。 | 225| attrs | 输出参数,获取的音频采样属性(例如采样频率、采样精度、通道)保存到attrs中。 | 226 227**返回:** 228 229成功返回值0,失败返回负值。 230 231**参见:** 232 233[GetSampleAttributes](#getsampleattributes) 234 235 236### RemoveAudioEffect 237 238 239``` 240int32_t (*AudioAttribute::RemoveAudioEffect)(AudioHandle handle, uint64_t effectid) 241``` 242 243**描述:** 244 245移除音频效果算法实例。 246 247**参数:** 248 249 | 名称 | 描述 | 250| -------- | -------- | 251| handle | 输入参数,待操作的音频句柄。 | 252| effectid | 输入参数,待移除的音频效果算法实例ID。 | 253 254**返回:** 255 256成功返回值0,失败返回负值。 257 258 259### ReqMmapBuffer 260 261 262``` 263int32_t(* AudioAttribute::ReqMmapBuffer) (AudioHandle handle, int32_t reqSize, struct AudioMmapBufferDescriptor *desc) 264``` 265 266**描述:** 267 268请求Mmap缓冲区。 269 270**参数:** 271 272 | 名称 | 描述 | 273| -------- | -------- | 274| handle | 输入参数,待操作的音频句柄。 | 275| reqSize | 输入参数,请求缓冲区的大小。 | 276| desc | 输出参数,缓冲区描述符。 | 277 278**返回:** 279 280成功返回值0,失败返回负值。 281 282 283### SetExtraParams 284 285 286``` 287int32_t(* AudioAttribute::SetExtraParams) (AudioHandle handle, const char *keyValueList) 288``` 289 290**描述:** 291 292设置音频拓展参数。 293 294**参数:** 295 296 | 名称 | 描述 | 297| -------- | -------- | 298| handle | 输入参数,待操作的音频句柄。 | 299| keyValueList | 输入参数,拓展参数键值对字符串列表,格式为key=value,多个键值对通过分号分割。 | 300 301**返回:** 302 303成功返回值0,失败返回负值。 304 305 306### SetSampleAttributes 307 308 309``` 310int32_t(* AudioAttribute::SetSampleAttributes) (AudioHandle handle, const struct AudioSampleAttributes *attrs) 311``` 312 313**描述:** 314 315设置音频采样的属性参数。 316 317**参数:** 318 319 | 名称 | 描述 | 320| -------- | -------- | 321| handle | 输入参数,待操作的音频句柄。 | 322| attrs | 输入参数,待设置的音频采样属性,例如采样频率、采样精度、通道。 | 323 324**返回:** 325 326成功返回值0,失败返回负值。 327 328**参见:** 329 330[GetSampleAttributes](#getsampleattributes) 331