• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Audio
2
3
4## **概述**
5
6Audio模块接口定义。
7
8音频接口涉及自定义类型、驱动加载接口、驱动适配器接口、音频播放(Render)接口、音频录音(Capture)接口等。
9
10**Since**:
11
121.0
13
14**Version**:
15
161.0
17
18
19## **汇总**
20
21
22### 文件
23
24  | 名称 | 描述 |
25| -------- | -------- |
26| [audio_adapter.h](audio__adapter_8h.md) | Audio适配器的接口定义文件 |
27| [audio_attribute.h](audio__attribute_8h.md) | Audio属性的接口定义文件 |
28| [audio_capture.h](audio__capture_8h.md) | Audio录音的接口定义文件 |
29| [audio_control.h](audio__control_8h.md) | Audio控制的接口定义文件 |
30| [audio_manager.h](audio__manager_8h.md) | Audio适配器管理及加载的接口定义文件 |
31| [audio_render.h](audio__render_8h.md) | Audio播放的接口定义文件 |
32| [audio_scene.h](audio__scene_8h.md) | Audio场景的接口定义文件 |
33| [audio_types.h](audio__types_8h.md) | Audio模块接口定义中使用的自定义数据类型 |
34| [audio_volume.h](audio__volume_8h.md) | Audio音量的接口定义文件 |
35
36
37### 类
38
39  | 名称 | 描述 |
40| -------- | -------- |
41| [AudioAdapter](_audio_adapter.md) | AudioAdapter音频适配器接口 |
42| [AudioAttribute](_audio_attribute.md) | AudioAttribute音频属性接口 |
43| [AudioCapture](_audio_capture.md) | AudioCapture音频录音接口 |
44| [AudioControl](_audio_control.md) | AudioControl音频控制接口 |
45| [AudioManager](_audio_manager.md) | AudioManager音频适配器管理接口 |
46| [AudioRender](_audio_render.md) | AudioRender音频播放接口 |
47| [AudioScene](_audio_scene.md) | AudioScene音频场景接口 |
48| [AudioPort](_audio_port.md) | 音频端口 |
49| [AudioAdapterDescriptor](_audio_adapter_descriptor.md) | 音频适配器描述符 |
50| [AudioDeviceDescriptor](_audio_device_descriptor.md) | 音频设备描述符 |
51| [AudioSceneDescriptor](_audio_scene_descriptor.md) | 音频场景描述符 |
52| [AudioSceneDescriptor::SceneDesc](union_audio_scene_descriptor_1_1_scene_desc.md) | 音频场景描述 |
53| [AudioSampleAttributes](_audio_sample_attributes.md) | 音频采样属性 |
54| [AudioTimeStamp](_audio_time_stamp.md) | 音频时间戳 |
55| [AudioSubPortCapability](_audio_sub_port_capability.md) | 音频子端口的支持能力 |
56| [AudioPortCapability](_audio_port_capability.md) | 音频端口的支持能力 |
57| [AudioMmapBufferDescriptor](_audio_mmap_buffer_descriptor.md) | mmap缓冲区描述符 |
58| [AudioDevExtInfo](_audio_dev_ext_info.md) | 音频设备拓展信息 |
59| [AudioMixExtInfo](_audio_mix_ext_info.md) | 音轨拓展信息 |
60| [AudioSessionExtInfo](_audio_session_ext_info.md) | 会话拓展信息 |
61| [AudioRouteNode](_audio_route_node.md) | 音频路由节点 |
62| [AudioRoute](_audio_route.md) | 音频路由信息 |
63| [AudioVolume](_audio_volume.md) | AudioVolume音频音量接口 |
64
65
66### 类型定义
67
68  | 名称 | 描述 |
69| -------- | -------- |
70| AudioHandle | 音频句柄 |
71| ([RenderCallback](#rendercallback)) (enum AudioCallbackType, void \*reserved, void \*cookie) | 回调函数指针 |
72
73
74### 枚举
75
76  | 名称 | 描述 |
77| -------- | -------- |
78| [AudioPortDirection](#audioportdirection) { PORT_OUT = 0x1u, PORT_IN = 0x2u, PORT_OUT_IN = 0x3u } | 音频端口的类型 |
79| [AudioPortPin](#audioportpin) { PIN_NONE = 0x0u, PIN_OUT_SPEAKER = 0x1u, PIN_OUT_HEADSET = 0x2u, PIN_OUT_LINEOUT = 0x4u,   PIN_OUT_HDMI = 0x8u, PIN_OUT_USB = 0x10u, PIN_OUT_USB_EXT = 0x20u, PIN_IN_MIC = 0x8000001u,   PIN_IN_HS_MIC = 0x8000002u, PIN_IN_LINEIN = 0x8000004u, PIN_IN_USB_EXT = 0x8000008u } | 音频适配器端口的PIN脚 |
80| [AudioCategory](#audiocategory) { AUDIO_IN_MEDIA = 0, AUDIO_IN_COMMUNICATION, AUDIO_IN_RINGTONE, AUDIO_IN_CALL } | 音频类型(category) |
81| [AudioFormat](#audioformat){ AUDIO_FORMAT_PCM_8_BIT = 0x1u, AUDIO_FORMAT_PCM_16_BIT = 0x2u, AUDIO_FORMAT_PCM_24_BIT = 0x3u, AUDIO_FORMAT_PCM_32_BIT = 0x4u,   AUDIO_FORMAT_AAC_MAIN = 0x1000001u, AUDIO_FORMAT_AAC_LC = 0x1000002u, AUDIO_FORMAT_AAC_LD = 0x1000003u, AUDIO_FORMAT_AAC_ELD = 0x1000004u,   AUDIO_FORMAT_AAC_HE_V1 = 0x1000005u, AUDIO_FORMAT_AAC_HE_V2 = 0x1000006u, AUDIO_FORMAT_G711A = 0x2000001u, AUDIO_FORMAT_G711U = 0x2000002u,   AUDIO_FORMAT_G726 = 0x2000003u } | 音频格式 |
82| [AudioChannelMask](#audiochannelmask){ AUDIO_CHANNEL_FRONT_LEFT = 0x1, AUDIO_CHANNEL_FRONT_RIGHT = 0x2, AUDIO_CHANNEL_MONO = 0x1u, AUDIO_CHANNEL_STEREO = 0x3u } | 音频通道掩码(mask) |
83| [AudioSampleRatesMask](#audiosampleratesmask){ AUDIO_SAMPLE_RATE_MASK_8000 = 0x1u, AUDIO_SAMPLE_RATE_MASK_12000 = 0x2u, AUDIO_SAMPLE_RATE_MASK_11025 = 0x4u, AUDIO_SAMPLE_RATE_MASK_16000 = 0x8u,   AUDIO_SAMPLE_RATE_MASK_22050 = 0x10u, AUDIO_SAMPLE_RATE_MASK_24000 = 0x20u, AUDIO_SAMPLE_RATE_MASK_32000 = 0x40u, AUDIO_SAMPLE_RATE_MASK_44100 = 0x80u,   AUDIO_SAMPLE_RATE_MASK_48000 = 0x100u, AUDIO_SAMPLE_RATE_MASK_64000 = 0x200u, AUDIO_SAMPLE_RATE_MASK_96000 = 0x400u, AUDIO_SAMPLE_RATE_MASK_INVALID = 0xFFFFFFFFu } | 音频采样频率MASK |
84| [AudioPortPassthroughMode](#audioportpassthroughmode){ PORT_PASSTHROUGH_LPCM = 0x1, PORT_PASSTHROUGH_RAW = 0x2, PORT_PASSTHROUGH_HBR2LBR = 0x4, PORT_PASSTHROUGH_AUTO = 0x8 } | 音频端口的数据透传模式 |
85| [AudioSampleFormat](#audiosampleformat){ AUDIO_SAMPLE_FORMAT_S8, AUDIO_SAMPLE_FORMAT_S8P, AUDIO_SAMPLE_FORMAT_U8, AUDIO_SAMPLE_FORMAT_U8P,   AUDIO_SAMPLE_FORMAT_S16, AUDIO_SAMPLE_FORMAT_S16P, AUDIO_SAMPLE_FORMAT_U16, AUDIO_SAMPLE_FORMAT_U16P,   AUDIO_SAMPLE_FORMAT_S24, AUDIO_SAMPLE_FORMAT_S24P, AUDIO_SAMPLE_FORMAT_U24, AUDIO_SAMPLE_FORMAT_U24P,   AUDIO_SAMPLE_FORMAT_S32, AUDIO_SAMPLE_FORMAT_S32P, AUDIO_SAMPLE_FORMAT_U32, AUDIO_SAMPLE_FORMAT_U32P,   AUDIO_SAMPLE_FORMAT_S64, AUDIO_SAMPLE_FORMAT_S64P, AUDIO_SAMPLE_FORMAT_U64, AUDIO_SAMPLE_FORMAT_U64P,   AUDIO_SAMPLE_FORMAT_F32, AUDIO_SAMPLE_FORMAT_F32P, AUDIO_SAMPLE_FORMAT_F64, AUDIO_SAMPLE_FORMAT_F64P } | 原始音频样本格式 |
86| [AudioChannelMode](#audiochannelmode){  AUDIO_CHANNEL_NORMAL = 0, AUDIO_CHANNEL_BOTH_LEFT, AUDIO_CHANNEL_BOTH_RIGHT, AUDIO_CHANNEL_EXCHANGE,   AUDIO_CHANNEL_MIX, AUDIO_CHANNEL_LEFT_MUTE, AUDIO_CHANNEL_RIGHT_MUTE, AUDIO_CHANNEL_BOTH_MUTE } | 音频播放的通道模式 |
87| [AudioDrainNotifyType](#audiodrainnotifytype){ AUDIO_DRAIN_NORMAL_MODE, AUDIO_DRAIN_EARLY_MODE } | DrainBuffer函数结束类型 |
88| [AudioCallbackType](#audiocallbacktype){ AUDIO_NONBLOCK_WRITE_COMPLETED, AUDIO_DRAIN_COMPLETED, AUDIO_FLUSH_COMPLETED, AUDIO_RENDER_FULL,   AUDIO_ERROR_OCCUR } | 回调函数通知事件类型 |
89| [AudioPortRole](#audioportrole){ AUDIO_PORT_UNASSIGNED_ROLE = 0, AUDIO_PORT_SOURCE_ROLE = 1, AUDIO_PORT_SINK_ROLE = 2 } | 音频端口角色 |
90| [AudioPortType](#audioporttype){ AUDIO_PORT_UNASSIGNED_TYPE = 0, AUDIO_PORT_DEVICE_TYPE = 1, AUDIO_PORT_MIX_TYPE = 2, AUDIO_PORT_SESSION_TYPE = 3 } | 音频端口类型. |
91| [AudioSessionType](#audiosessiontype){ AUDIO_OUTPUT_STAGE_SESSION = 0, AUDIO_OUTPUT_MIX_SESSION, AUDIO_ALLOCATE_SESSION, AUDIO_INVALID_SESSION } | 端口会话类型 |
92
93
94### 函数
95
96  | 名称 | 描述 |
97| -------- | -------- |
98| [GetAudioManagerFuncs](#getaudiomanagerfuncs)(void) | 获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。 |
99
100
101### 变量
102
103  | 变量 名称 | 描述 |
104| -------- | -------- |
105| [AudioPort::dir](#dir) | 音频端口的类型。 |
106| [AudioPort::portId](#portid-14) | 音频端口的ID。 |
107| [AudioPort::portName](#portname) | 音频端口的名称。 |
108| [AudioAdapterDescriptor::adapterName](#adaptername) | 音频适配器的名称。 |
109| [AudioAdapterDescriptor::portNum](#portnum) | 一个音频适配器支持的端口数目。 |
110| [AudioAdapterDescriptor::ports](#ports) | 一个音频适配器支持的端口列表。 |
111| [AudioDeviceDescriptor::portId](#portid-24) | 音频端口ID。 |
112| [AudioDeviceDescriptor::pins](#pins) | 音频端口上的PIN脚(输出、输入)。 |
113| [AudioDeviceDescriptor::desc](#desc-15) | 以字符串命名的音频设备。 |
114| [AudioSceneDescriptor::SceneDesc::id](#id) | 音频场景的ID。 |
115| [AudioSceneDescriptor::SceneDesc::desc](#desc-35) | 以字符串命名的音频场景。 |
116| [AudioSceneDescriptor::scene](#scene) | 音频场景的名称。 |
117| [AudioSceneDescriptor::desc](#desc-25) | 音频设备描述符。 |
118| [AudioSampleAttributes::type](#type-13) | 音频类型。 |
119| [AudioSampleAttributes::interleaved](#interleaved) | 音频数据交织的标记。 |
120| [AudioSampleAttributes::format](#format) | 音频数据格式。 |
121| [AudioSampleAttributes::sampleRate](#samplerate) | 音频采样频率。 |
122| [AudioSampleAttributes::channelCount](#channelcount-12) | 音频通道数目,如单通道(mono)为1、立体声(stereo)为2。 |
123| [AudioSampleAttributes::period](#period) | 音频采样周期。 |
124| [AudioSampleAttributes::frameSize](#framesize) | 音频数据的帧大小。 |
125| [AudioSampleAttributes::isBigEndian](#isbigendian) | 音频数据的大端标志。 |
126| [AudioSampleAttributes::isSignedData](#issigneddata) | 音频数据的有符号或无符号标志。 |
127| [AudioSampleAttributes::startThreshold](#startthreshold) | 音频渲染开始阈值。 |
128| [AudioSampleAttributes::stopThreshold](#stopthreshold) | 音频渲染停止阈值。 |
129| [AudioSampleAttributes::silenceThreshold](#silencethreshold) | 音频捕获缓冲区阈值。 |
130| [AudioSampleAttributes::streamId](#streamid-12) | 渲染或捕获的音频标识符。 |
131| [AudioTimeStamp::tvSec](#tvsec) | tvSec时间,单位:秒。 |
132| [AudioTimeStamp::tvNSec](#tvnsec) | tvNSec时间,单位:纳秒。 |
133| [AudioSubPortCapability::portId](#portid-34) | 子端口ID。 |
134| [AudioSubPortCapability::desc](#desc-45) | 以字符串命名的子端口。 |
135| [AudioSubPortCapability::mask](#mask) | 数据透传模式。 |
136| [AudioPortCapability::deviceType](#devicetype) | 设备输出、输入类型。 |
137| [AudioPortCapability::deviceId](#deviceid) | 绑定(bind)设备ID,唯一的设备识别符。 |
138| [AudioPortCapability::hardwareMode](#hardwaremode) | 是否支持设备绑定处理。 |
139| [AudioPortCapability::formatNum](#formatnum) | 支持的音频格式数目。 |
140| [AudioPortCapability::formats](#formats) | 支持的音频格式。 |
141| [AudioPortCapability::sampleRateMasks](#sampleratemasks) | 支持的音频采样频率(8k、16k、32k、48k)。 |
142| [AudioPortCapability::channelMasks](#channelmasks) | 设备的声道布局掩码(mask)。 |
143| [AudioPortCapability::channelCount](#channelcount-22) | 支持的最大声道总数。 |
144| [AudioPortCapability::subPortsNum](#subportsnum) | 支持的子端口数目(仅用于输出设备)。 |
145| [AudioPortCapability::subPorts](#subports) | 支持的子端口列表。 |
146| [AudioPortCapability::supportSampleFormatNum](#supportsampleformatnum) | 支持的音频样本格式数量。 |
147| [AudioPortCapability::supportSampleFormats](#supportsampleformats) | 支持的音频样本格式。 |
148| [AudioMmapBufferDescriptor::memoryAddress](#memoryaddress) | 指向mmap缓冲区的指针。 |
149| [AudioMmapBufferDescriptor::memoryFd](#memoryfd) | mmap缓冲区的文件描述符。 |
150| [AudioMmapBufferDescriptor::totalBufferFrames](#totalbufferframes) | 缓冲区总大小,单位:帧。 |
151| [AudioMmapBufferDescriptor::transferFrameSize](#transferframesize) | 传输大小,单位:帧。 |
152| [AudioMmapBufferDescriptor::isShareable](#isshareable) | mmap缓冲区是否可以在进程间共享。 |
153| [AudioDevExtInfo::moduleId](#moduleid-12) | 音频流绑定的模块ID。 |
154| [AudioDevExtInfo::type](#type-23) | 音频端口上的PIN脚(输出、输入)。 |
155| [AudioDevExtInfo::desc](#desc-55) | 地址描述。 |
156| [AudioMixExtInfo::moduleId](#moduleid-22) | 流所属模块标识符。 |
157| [AudioMixExtInfo::streamId](#streamid-22) | 由调用者传递的Render或Capture标识符。 |
158| [AudioSessionExtInfo::sessionType](#sessiontype) | 音频会话类型。 |
159| [AudioRouteNode::portId](#portid-44) | 音频端口ID。 |
160| [AudioRouteNode::role](#role) | 指定端口角色为sink或source。 |
161| [AudioRouteNode::type](#type-33) | 指定端口类型。 |
162| [AudioRouteNode::device](#device) | 设备特定信息。 |
163| [AudioRouteNode::mix](#mix) | 音轨特定信息。 |
164| [AudioRouteNode::session](#session) | 会话特定信息。 |
165| [AudioRoute::sourcesNum](#sourcesnum) | 发送端节点数量。 |
166| [AudioRoute::sources](#sources) | 发送端列表。 |
167| [AudioRoute::sinksNum](#sinksnum) | 接受端节点数量。 |
168| [AudioRoute::sinks](#sinks) | 接受端列表。 |
169
170
171## **类型定义说明**
172
173
174### RenderCallback
175
176
177```
178typedef int32_t(* RenderCallback) (enum AudioCallbackType, void *reserved, void *cookie)
179```
180
181**描述:**
182
183回调函数指针。
184
185**参数:**
186
187  | 名称 | 描述 |
188| -------- | -------- |
189| AudioCallbackType | 回调函数响应类型 |
190| reserved | 保留字段 |
191| cookie | 用于传递数据 |
192
193**返回:**
194
195成功返回值0,失败返回负值。
196
197**参见:**
198
199[RegCallback](_audio_render.md#regcallback)
200
201
202## **枚举类型说明**
203
204
205### AudioCallbackType
206
207
208```
209enum AudioCallbackType
210```
211
212**描述:**
213
214回调函数通知事件类型。
215
216  | 枚举值 | 描述 |
217| -------- | -------- |
218| AUDIO_NONBLOCK_WRITE_COMPLETED | 非阻塞式写完成 |
219| AUDIO_DRAIN_COMPLETED | DrainBuffer完成 |
220| AUDIO_FLUSH_COMPLETED | Flush完成 |
221| AUDIO_RENDER_FULL | Render缓冲区已满 |
222| AUDIO_ERROR_OCCUR | 发生了错误 |
223
224
225### AudioCategory
226
227
228```
229enum AudioCategory
230```
231
232**描述:**
233
234音频类型(category)。
235
236  | 枚举值 | 描述 |
237| -------- | -------- |
238| AUDIO_IN_MEDIA | 媒体 |
239| AUDIO_IN_COMMUNICATION | 通信 |
240| AUDIO_IN_RINGTONE | 铃声 |
241| AUDIO_IN_CALL | 呼叫 |
242
243
244### AudioChannelMask
245
246
247```
248enum AudioChannelMask
249```
250
251**描述:**
252
253音频通道掩码(mask)。
254
255定义音频声道的位置。
256
257  | 枚举值 | 描述 |
258| -------- | -------- |
259| AUDIO_CHANNEL_FRONT_LEFT | 声道布局前左 |
260| AUDIO_CHANNEL_FRONT_RIGHT | 声道布局前右 |
261| AUDIO_CHANNEL_MONO | 单声道 |
262| AUDIO_CHANNEL_STEREO | 立体声,由左右声道组成(FRONT_LEFT \| FRONT_RIGHT) |
263
264
265### AudioChannelMode
266
267
268```
269enum AudioChannelMode
270```
271
272**描述:**
273
274音频播放的通道模式。
275
276**注意:**
277
278下面的模式是针对双通道立体声的音频播放而设置,其他不支持。
279
280  | 枚举值 | 描述 |
281| -------- | -------- |
282| AUDIO_CHANNEL_NORMAL | 正常模式,不做处理 |
283| AUDIO_CHANNEL_BOTH_LEFT | 两个声道全部为左声道声音 |
284| AUDIO_CHANNEL_BOTH_RIGHT | 两个声道全部为右声道声音 |
285| AUDIO_CHANNEL_EXCHANGE | 左右声道数据互换,左声道为右声道声音,右声道为左声道声音 |
286| AUDIO_CHANNEL_MIX | 左右两个声道输出为左右声道相加(混音) |
287| AUDIO_CHANNEL_LEFT_MUTE | 左声道静音,右声道播放原右声道声音 |
288| AUDIO_CHANNEL_RIGHT_MUTE | 右声道静音,左声道播放原左声道声音 |
289| AUDIO_CHANNEL_BOTH_MUTE | 左右声道均静音 |
290
291
292### AudioDrainNotifyType
293
294
295```
296enum AudioDrainNotifyType
297```
298
299**描述:**
300
301DrainBuffer函数结束类型。
302
303  | 枚举值 | 描述 |
304| -------- | -------- |
305| AUDIO_DRAIN_NORMAL_MODE | DrainBuffer在所有数据播放结束后返回 |
306| AUDIO_DRAIN_EARLY_MODE | DrainBuffer()在当前曲目的所有数据播放完之前返回,以便留出时间给音频服务做连续性曲目切换 |
307
308
309### AudioFormat
310
311
312```
313enum AudioFormat
314```
315
316**描述:**
317
318音频格式。
319
320  | 枚举值 | 描述 |
321| -------- | -------- |
322| AUDIO_FORMAT_PCM_8_BIT | 8bit位宽pcm格式 |
323| AUDIO_FORMAT_PCM_16_BIT | 16bit位宽pcm格式 |
324| AUDIO_FORMAT_PCM_24_BIT | 24bit位宽pcm格式 |
325| AUDIO_FORMAT_PCM_32_BIT | 32bit位宽pcm格式 |
326| AUDIO_FORMAT_AAC_MAIN | AAC MAIN格式 |
327| AUDIO_FORMAT_AAC_LC | AAC LC格式 |
328| AUDIO_FORMAT_AAC_LD | AAC LD格式 |
329| AUDIO_FORMAT_AAC_ELD | AAC ELD格式 |
330| AUDIO_FORMAT_AAC_HE_V1 | AAC HE_V1格式 |
331| AUDIO_FORMAT_AAC_HE_V2 | AAC HE_V2格式 |
332| AUDIO_FORMAT_G711A | G711A格式 |
333| AUDIO_FORMAT_G711U | G711u格式 |
334| AUDIO_FORMAT_G726 | G726格式 |
335
336
337### AudioPortDirection
338
339
340```
341enum AudioPortDirection
342```
343
344**描述:**
345
346音频端口的类型。
347
348  | 枚举值 | 描述 |
349| -------- | -------- |
350| PORT_OUT | 音频输出端口 |
351| PORT_IN | 音频输入端口 |
352| PORT_OUT_IN | 音频输出/入端口, 同时支持输出和输入能力(OUT \| IN) |
353
354
355### AudioPortPassthroughMode
356
357
358```
359enum AudioPortPassthroughMode
360```
361
362**描述:**
363
364音频端口的数据透传模式。
365
366  | 枚举值 | 描述 |
367| -------- | -------- |
368| PORT_PASSTHROUGH_LPCM | 立体声pcm |
369| PORT_PASSTHROUGH_RAW | HDMI透传 |
370| PORT_PASSTHROUGH_HBR2LBR | 蓝光次世代音频降规格输出 |
371| PORT_PASSTHROUGH_AUTO | 根据HDMI EDID能力自动匹配 |
372
373
374### AudioPortPin
375
376
377```
378enum AudioPortPin
379```
380
381**描述:**
382
383音频适配器端口的PIN脚。
384
385  | 枚举值 | 描述 |
386| -------- | -------- |
387| PIN_NONE | 无效PIN |
388| PIN_OUT_SPEAKER | 喇叭输出 |
389| PIN_OUT_HEADSET | 有线耳机输出 |
390| PIN_OUT_LINEOUT | Lineout输出 |
391| PIN_OUT_HDMI | HDMI输出 |
392| PIN_OUT_USB | USB设备输出 |
393| PIN_OUT_USB_EXT | 扩展 USB 设备输出 |
394| PIN_IN_MIC | Mic输入 |
395| PIN_IN_HS_MIC | 有线耳机Mic输入 |
396| PIN_IN_LINEIN | Linein输入 |
397| PIN_IN_USB_EXT | 扩展 USB 设备输入 |
398
399
400### AudioPortRole
401
402
403```
404enum AudioPortRole
405```
406
407**描述:**
408
409音频端口角色。
410
411  | 枚举值 | 描述 |
412| -------- | -------- |
413| AUDIO_PORT_UNASSIGNED_ROLE | 未指定端口角色 |
414| AUDIO_PORT_SOURCE_ROLE | 指定端口为发送端角色 |
415| AUDIO_PORT_SINK_ROLE | 指定端口为接受端角色 |
416
417
418### AudioPortType
419
420
421```
422enum AudioPortType
423```
424
425**描述:**
426
427音频端口类型。
428
429  | 枚举值 | 描述 |
430| -------- | -------- |
431| AUDIO_PORT_UNASSIGNED_TYPE | 未指定端口类型 |
432| AUDIO_PORT_DEVICE_TYPE | 指定端口为设备类型 |
433| AUDIO_PORT_MIX_TYPE | 指定端口类型为复合类型 |
434| AUDIO_PORT_SESSION_TYPE | 指定端口为会话类型 |
435
436
437### AudioSampleFormat
438
439
440```
441enum AudioSampleFormat
442```
443
444**描述:**
445
446原始音频样本格式。
447
448  | 枚举值 | 描述 |
449| -------- | -------- |
450| AUDIO_SAMPLE_FORMAT_S8 | 8bit位宽有符号交织样本 |
451| AUDIO_SAMPLE_FORMAT_S8P | 8bit位宽有符号非交织样本 |
452| AUDIO_SAMPLE_FORMAT_U8 | 8bit位宽无符号交织样本 |
453| AUDIO_SAMPLE_FORMAT_U8P | 8bit位宽无符号非交织样本 |
454| AUDIO_SAMPLE_FORMAT_S16 | 16bit位宽有符号交织样本 |
455| AUDIO_SAMPLE_FORMAT_S16P | 16bit位宽有符号非交织样本 |
456| AUDIO_SAMPLE_FORMAT_U16 | 16bit位宽无符号交织样本 |
457| AUDIO_SAMPLE_FORMAT_U16P | 16bit位宽无符号非交织样本 |
458| AUDIO_SAMPLE_FORMAT_S24 | 24bit位宽有符号交织样本 |
459| AUDIO_SAMPLE_FORMAT_S24P | 24bit位宽有符号非交织样本 |
460| AUDIO_SAMPLE_FORMAT_U24 | 24bit位宽无符号交织样本 |
461| AUDIO_SAMPLE_FORMAT_U24P | 24bit位宽无符号非交织样本 |
462| AUDIO_SAMPLE_FORMAT_S32 | 32bit位宽有符号交织样本 |
463| AUDIO_SAMPLE_FORMAT_S32P | 32bit位宽有符号非交织样本 |
464| AUDIO_SAMPLE_FORMAT_U32 | 32bit位宽无符号交织样本 |
465| AUDIO_SAMPLE_FORMAT_U32P | 32bit位宽无符号非交织样本 |
466| AUDIO_SAMPLE_FORMAT_S64 | 64bit位宽有符号交织样本 |
467| AUDIO_SAMPLE_FORMAT_S64P | 64bit位宽有符号非交织样本 |
468| AUDIO_SAMPLE_FORMAT_U64 | 64bit位宽无符号交织样本 |
469| AUDIO_SAMPLE_FORMAT_U64P | 64bit位宽无符号非交织样本 |
470| AUDIO_SAMPLE_FORMAT_F32 | 32bit位宽浮点型交织样本 |
471| AUDIO_SAMPLE_FORMAT_F32P | 64bit位宽浮点型非交织样本 |
472| AUDIO_SAMPLE_FORMAT_F64 | 64bit位宽双精度浮点型交织样本 |
473| AUDIO_SAMPLE_FORMAT_F64P | 64bit位宽双精度浮点型非交织样本 |
474
475
476### AudioSampleRatesMask
477
478
479```
480enum AudioSampleRatesMask
481```
482
483**描述:**
484
485音频采样频率MASK。
486
487  | 枚举值 | 描述 |
488| -------- | -------- |
489| AUDIO_SAMPLE_RATE_MASK_8000 | 8K 采样频率 |
490| AUDIO_SAMPLE_RATE_MASK_12000 | 12K 采样频率 |
491| AUDIO_SAMPLE_RATE_MASK_11025 | 11.025K 采样频率 |
492| AUDIO_SAMPLE_RATE_MASK_16000 | 16K 采样频率 |
493| AUDIO_SAMPLE_RATE_MASK_22050 | 22.050K 采样频率 |
494| AUDIO_SAMPLE_RATE_MASK_24000 | 24K 采样频率 |
495| AUDIO_SAMPLE_RATE_MASK_32000 | 32K 采样频率 |
496| AUDIO_SAMPLE_RATE_MASK_44100 | 44.1K 采样频率 |
497| AUDIO_SAMPLE_RATE_MASK_48000 | 48K 采样频率 |
498| AUDIO_SAMPLE_RATE_MASK_64000 | 64K 采样频率 |
499| AUDIO_SAMPLE_RATE_MASK_96000 | 96K 采样频率 |
500| AUDIO_SAMPLE_RATE_MASK_INVALID | 无效的采样频率 |
501
502
503### AudioSessionType
504
505
506```
507enum AudioSessionType
508```
509
510**描述:**
511
512端口会话类型。
513
514  | 枚举值 | 描述 |
515| -------- | -------- |
516| AUDIO_OUTPUT_STAGE_SESSION | 会话绑定到指定输出流 |
517| AUDIO_OUTPUT_MIX_SESSION | 会话绑定到特定音轨 |
518| AUDIO_ALLOCATE_SESSION | 会话ID需重新申请 |
519| AUDIO_INVALID_SESSION | 无效会话类型 |
520
521
522## **函数说明**
523
524
525### GetAudioManagerFuncs()
526
527
528```
529struct AudioManager* GetAudioManagerFuncs (void )
530```
531
532**描述:**
533
534获取音频适配器管理接口的操作函数列表,详情参考[AudioManager](_audio_manager.md)。
535
536**返回:**
537
538成功返回一个音频适配器管理接口的对象,失败返回NULL。
539
540
541## **变量说明**
542
543
544### adapterName
545
546
547```
548const char* AudioAdapterDescriptor::adapterName
549```
550
551**描述:**
552
553音频适配器的名称
554
555
556### channelCount [1/2]
557
558
559```
560uint32_t AudioSampleAttributes::channelCount
561```
562
563**描述:**
564
565音频通道数目,如单通道(mono)为1、立体声(stereo)为2。
566
567
568### channelCount [2/2]
569
570
571```
572unsigned int AudioPortCapability::channelCount
573```
574
575**描述:**
576
577支持的最大声道总数
578
579
580### channelMasks
581
582
583```
584enum AudioChannelMask AudioPortCapability::channelMasks
585```
586
587**描述:**
588
589设备的声道布局掩码(mask),详情参考[AudioChannelMask](#audiochannelmask)。
590
591
592### desc [1/5]
593
594
595```
596const char* AudioDeviceDescriptor::desc
597```
598
599**描述:**
600
601以字符串命名的音频设备
602
603
604### desc [2/5]
605
606
607```
608struct AudioDeviceDescriptor AudioSceneDescriptor::desc
609```
610
611**描述:**
612
613音频设备描述符
614
615
616### desc [3/5]
617
618
619```
620const char* AudioSceneDescriptor::SceneDesc::desc
621```
622
623**描述:**
624
625以字符串命名的音频场景
626
627
628### desc [4/5]
629
630
631```
632const char* AudioSubPortCapability::desc
633```
634
635**描述:**
636
637以字符串命名的子端口
638
639
640### desc [5/5]
641
642
643```
644const char* AudioDevExtInfo::desc
645```
646
647**描述:**
648
649地址描述
650
651
652### device
653
654
655```
656struct AudioDevExtInfo AudioRouteNode::ext::device
657```
658
659**描述:**
660
661设备特定信息。
662
663
664### deviceId
665
666
667```
668unsigned int AudioPortCapability::deviceId
669```
670
671**描述:**
672
673绑定(bind)设备ID,唯一的设备识别符。
674
675
676### deviceType
677
678
679```
680unsigned int AudioPortCapability::deviceType
681```
682
683**描述:**
684
685设备输出、输入类型。
686
687
688### dir
689
690
691```
692enum AudioPortDirection AudioPort::dir
693```
694
695**描述:**
696
697音频端口的类型,详情参考[AudioPortDirection](#audioportdirection)。
698
699
700### format
701
702
703```
704enum AudioFormat AudioSampleAttributes::format
705```
706
707**描述:**
708
709音频数据格式,详情参考[AudioFormat](#audioformat)。
710
711
712### formatNum
713
714
715```
716unsigned int AudioPortCapability::formatNum
717```
718
719**描述:**
720
721支持的音频格式数目
722
723
724### formats
725
726
727```
728enum AudioFormat* AudioPortCapability::formats
729```
730
731**描述:**
732
733支持的音频格式,详情参考[AudioFormat](#audioformat)。
734
735
736### frameSize
737
738
739```
740uint32_t AudioSampleAttributes::frameSize
741```
742
743**描述:**
744
745音频数据的帧大小
746
747
748### hardwareMode
749
750
751```
752bool AudioPortCapability::hardwareMode
753```
754
755**描述:**
756
757是否支持设备绑定处理
758
759
760### id
761
762
763```
764unsigned int AudioSceneDescriptor::SceneDesc::id
765```
766
767**描述:**
768
769音频场景的ID
770
771
772### interleaved
773
774
775```
776bool AudioSampleAttributes::interleaved
777```
778
779**描述:**
780
781音频数据交织的标记
782
783
784### isBigEndian
785
786
787```
788bool AudioSampleAttributes::isBigEndian
789```
790
791**描述:**
792
793音频数据的大端标志
794
795
796### isShareable
797
798
799```
800int32_t AudioMmapBufferDescriptor::isShareable
801```
802
803**描述:**
804
805mmap缓冲区是否可以在进程间共享
806
807
808### isSignedData
809
810
811```
812bool AudioSampleAttributes::isSignedData
813```
814
815**描述:**
816
817音频数据的有符号或无符号标志
818
819
820### mask
821
822
823```
824enum AudioPortPassthroughMode AudioSubPortCapability::mask
825```
826
827**描述:**
828
829数据透传模式,详情参考[AudioPortPassthroughMode](#audioportpassthroughmode)。
830
831
832### memoryAddress
833
834
835```
836void* AudioMmapBufferDescriptor::memoryAddress
837```
838
839**描述:**
840
841指向mmap缓冲区的指针
842
843
844### memoryFd
845
846
847```
848int32_t AudioMmapBufferDescriptor::memoryFd
849```
850
851**描述:**
852
853mmap缓冲区的文件描述符
854
855
856### mix
857
858
859```
860struct AudioMixExtInfo AudioRouteNode::ext::mix
861```
862
863**描述:**
864
865音轨特定信息。
866
867
868### moduleId [1/2]
869
870
871```
872int32_t AudioDevExtInfo::moduleId
873```
874
875**描述:**
876
877音频流绑定的模块ID
878
879
880### moduleId [2/2]
881
882
883```
884int32_t AudioMixExtInfo::moduleId
885```
886
887**描述:**
888
889流所属模块标识符
890
891
892### period
893
894
895```
896uint32_t AudioSampleAttributes::period
897```
898
899**描述:**
900
901音频采样周期
902
903
904### pins
905
906
907```
908enum AudioPortPin AudioDeviceDescriptor::pins
909```
910
911**描述:**
912
913音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。
914
915
916### portId [1/4]
917
918
919```
920unsigned int AudioPort::portId
921```
922
923**描述:**
924
925音频端口的ID
926
927
928### portId [2/4]
929
930
931```
932unsigned int AudioDeviceDescriptor::portId
933```
934
935**描述:**
936
937音频端口ID
938
939
940### portId [3/4]
941
942
943```
944unsigned int AudioSubPortCapability::portId
945```
946
947**描述:**
948
949子端口ID
950
951
952### portId [4/4]
953
954
955```
956int32_t AudioRouteNode::portId
957```
958
959**描述:**
960
961音频端口ID
962
963
964### portName
965
966
967```
968const char* AudioPort::portName
969```
970
971**描述:**
972
973音频端口的名称
974
975
976### portNum
977
978
979```
980unsigned int AudioAdapterDescriptor::portNum
981```
982
983**描述:**
984
985一个音频适配器支持的端口数目
986
987
988### ports
989
990
991```
992struct AudioPort* AudioAdapterDescriptor::ports
993```
994
995**描述:**
996
997一个音频适配器支持的端口列表
998
999
1000### role
1001
1002
1003```
1004enum AudioPortRole AudioRouteNode::role
1005```
1006
1007**描述:**
1008
1009指定端口角色为sink或source
1010
1011
1012### sampleRate
1013
1014
1015```
1016unsigned int AudioSampleAttributes::sampleRate
1017```
1018
1019**描述:**
1020
1021音频采样频率
1022
1023
1024### sampleRateMasks
1025
1026
1027```
1028unsigned int AudioPortCapability::sampleRateMasks
1029```
1030
1031**描述:**
1032
1033支持的音频采样频率(8k、16k、32k、48k)
1034
1035
1036### scene
1037
1038
1039```
1040union AudioSceneDescriptor::SceneDesc AudioSceneDescriptor::scene
1041```
1042
1043**描述:**
1044
1045音频场景的名称
1046
1047
1048### session
1049
1050
1051```
1052struct AudioSessionExtInfo AudioRouteNode::ext::session
1053```
1054
1055**描述:**
1056
1057会话特定信息。
1058
1059
1060### sessionType
1061
1062
1063```
1064enum AudioSessionType AudioSessionExtInfo::sessionType
1065```
1066
1067**描述:**
1068
1069音频会话类型
1070
1071
1072### silenceThreshold
1073
1074
1075```
1076uint32_t AudioSampleAttributes::silenceThreshold
1077```
1078
1079**描述:**
1080
1081音频捕获缓冲区阈值
1082
1083
1084### sinks
1085
1086
1087```
1088const struct AudioRouteNode* AudioRoute::sinks
1089```
1090
1091**描述:**
1092
1093接受端列表
1094
1095
1096### sinksNum
1097
1098
1099```
1100uint32_t AudioRoute::sinksNum
1101```
1102
1103**描述:**
1104
1105接受端节点数量
1106
1107
1108### sources
1109
1110
1111```
1112const struct AudioRouteNode* AudioRoute::sources
1113```
1114
1115**描述:**
1116
1117发送端列表
1118
1119
1120### sourcesNum
1121
1122
1123```
1124uint32_t AudioRoute::sourcesNum
1125```
1126
1127**描述:**
1128
1129发送端节点数量
1130
1131
1132### startThreshold
1133
1134
1135```
1136uint32_t AudioSampleAttributes::startThreshold
1137```
1138
1139**描述:**
1140
1141音频渲染开始阈值
1142
1143
1144### stopThreshold
1145
1146
1147```
1148uint32_t AudioSampleAttributes::stopThreshold
1149```
1150
1151**描述:**
1152
1153音频渲染停止阈值
1154
1155
1156### streamId [1/2]
1157
1158
1159```
1160int32_t AudioSampleAttributes::streamId
1161```
1162
1163**描述:**
1164
1165渲染或捕获的音频标识符
1166
1167
1168### streamId [2/2]
1169
1170
1171```
1172int32_t AudioMixExtInfo::streamId
1173```
1174
1175**描述:**
1176
1177由调用者传递的Render或Capture标识符
1178
1179
1180### subPorts
1181
1182
1183```
1184struct AudioSubPortCapability* AudioPortCapability::subPorts
1185```
1186
1187**描述:**
1188
1189支持的子端口列表
1190
1191
1192### subPortsNum
1193
1194
1195```
1196unsigned int AudioPortCapability::subPortsNum
1197```
1198
1199**描述:**
1200
1201支持的子端口数目(仅用于输出设备)
1202
1203
1204### supportSampleFormatNum
1205
1206
1207```
1208uint32_t AudioPortCapability::supportSampleFormatNum
1209```
1210
1211**描述:**
1212
1213支持的音频样本格式数量
1214
1215
1216### supportSampleFormats
1217
1218
1219```
1220enum AudioSampleFormat* AudioPortCapability::supportSampleFormats
1221```
1222
1223**描述:**
1224
1225支持的音频样本格式,详请参考[AudioSampleFormat](#audiosampleformat)。
1226
1227
1228### totalBufferFrames
1229
1230
1231```
1232int32_t AudioMmapBufferDescriptor::totalBufferFrames
1233```
1234
1235**描述:**
1236
1237缓冲区总大小,单位:帧。
1238
1239
1240### transferFrameSize
1241
1242
1243```
1244int32_t AudioMmapBufferDescriptor::transferFrameSize
1245```
1246
1247**描述:**
1248
1249传输大小,单位:帧。
1250
1251
1252### tvNSec
1253
1254
1255```
1256int64_t AudioTimeStamp::tvNSec
1257```
1258
1259**描述:**
1260
1261tvNSec时间,单位:纳秒。
1262
1263
1264### tvSec
1265
1266
1267```
1268int64_t AudioTimeStamp::tvSec
1269```
1270
1271**描述:**
1272
1273tvSec时间,单位:秒。
1274
1275
1276### type [1/3]
1277
1278
1279```
1280enum AudioCategory AudioSampleAttributes::type
1281```
1282
1283**描述:**
1284
1285音频类型,详情参考[AudioCategory](#audiocategory)。
1286
1287
1288### type [2/3]
1289
1290
1291```
1292enum AudioPortPin AudioDevExtInfo::type
1293```
1294
1295**描述:**
1296
1297音频端口上的PIN脚(输出、输入),详情参考[AudioPortPin](#audioportpin)。
1298
1299
1300### type [3/3]
1301
1302
1303```
1304enum AudioPortType AudioRouteNode::type
1305```
1306
1307**描述:**
1308
1309指定端口类型为device, mix等。
1310