1# OHAudio
2
3
4## 概述
5
6提供音频模块C接口定义。
7
8**系统能力:** SystemCapability.Multimedia.Audio.Core
9
10**起始版本:** 10
11
12
13## 汇总
14
15
16### 文件
17
18| 名称 | 描述 | 
19| -------- | -------- |
20| [native_audio_common.h](native__audio__common_8h.md) | 声明音频公共基础数据结构。  | 
21| [native_audio_device_base.h](native__audio__device__base_8h.md) | 定义音频设备参数的类型以及获取每个设备参数的接口。  | 
22| [native_audio_manager.h](native__audio__manager_8h.md) | 声明音频管理相关的接口。  | 
23| [native_audio_routing_manager.h](native__audio__routing__manager_8h.md) | 声明与音频路由管理器相关的接口。  | 
24| [native_audio_session_manager.h](native__audio__session__manager_8h.md) | 声明音频会话管理相关的接口。  | 
25| [native_audiocapturer.h](native__audiocapturer_8h.md) | 声明输入类型的音频流相关接口。  | 
26| [native_audiorenderer.h](native__audiorenderer_8h.md) | 声明输出类型的音频流相关接口。  | 
27| [native_audiostream_base.h](native__audiostream__base_8h.md) | 声明OHAudio基础的数据结构。  | 
28| [native_audiostreambuilder.h](native__audiostreambuilder_8h.md) | 声明音频流构造器相关接口。  | 
29
30
31### 结构体
32
33| 名称 | 描述 | 
34| -------- | -------- |
35| struct  [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) | 声明音频设备描述符数组。  | 
36| struct  [OH_AudioSession_Strategy](_o_h___audio_session___strategy.md) | 音频会话策略。  | 
37| struct  [OH_AudioSession_DeactivatedEvent](_o_h___audio_session___deactivated_event.md) | 音频会话已停用事件。  | 
38| struct  [OH_AudioRenderer_Callbacks_Struct](_o_h___audio_renderer___callbacks___struct.md) | 声明输出音频流的回调函数指针。  | 
39| struct  [OH_AudioCapturer_Callbacks_Struct](_o_h___audio_capturer___callbacks___struct.md) | 声明输入音频流的回调函数指针。  | 
40
41
42### 类型定义
43
44| 名称 | 描述 | 
45| -------- | -------- |
46| typedef struct [OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) [OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) | 声明音频设备描述符。 该实例用于获取更多音频设备详细信息属性。  | 
47| typedef struct [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) [OH_AudioDeviceDescriptorArray](#oh_audiodevicedescriptorarray) | 声明音频设备描述符数组。  | 
48| typedef struct [OH_AudioManager](#oh_audiomanager) [OH_AudioManager](#oh_audiomanager) | 声明音频管理器。  | 
49| typedef struct [OH_AudioRoutingManager](#oh_audioroutingmanager) [OH_AudioRoutingManager](#oh_audioroutingmanager) | 声明音频路由管理器,用于路由和设备相关功能的音频路由管理器的句柄。  | 
50| typedef int32_t(\* [OH_AudioRoutingManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback))([OH_AudioDevice_ChangeType](#oh_audiodevice_changetype) type, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*audioDeviceDescriptorArray) | 此函数指针将指向用于返回更改的音频设备描述符的回调函数,可能返回多个音频设备描述符。  | 
51| typedef struct [OH_AudioSessionManager](#oh_audiosessionmanager) [OH_AudioSessionManager](#oh_audiosessionmanager) | 声明音频会话管理器。  | 
52| typedef struct [OH_AudioSession_Strategy](_o_h___audio_session___strategy.md) [OH_AudioSession_Strategy](#oh_audiosession_strategy) | 音频会话策略。  | 
53| typedef struct [OH_AudioSession_DeactivatedEvent](_o_h___audio_session___deactivated_event.md) [OH_AudioSession_DeactivatedEvent](#oh_audiosession_deactivatedevent) | 音频会话已停用事件。  | 
54| typedef int32_t(\* [OH_AudioSession_DeactivatedCallback](#oh_audiosession_deactivatedcallback))([OH_AudioSession_DeactivatedEvent](_o_h___audio_session___deactivated_event.md) event) | 这个函数指针将指向用于监听音频会话停用事件的回调函数。  | 
55| typedef struct OH_AudioStreamBuilderStruct [OH_AudioStreamBuilder](#oh_audiostreambuilder) | 声明音频流的构造器。  | 
56| typedef struct OH_AudioRendererStruct [OH_AudioRenderer](#oh_audiorenderer) | 声明输出音频流。  | 
57| typedef struct OH_AudioCapturerStruct [OH_AudioCapturer](#oh_audiocapturer) | 声明输入音频流。  | 
58| typedef struct [OH_AudioRenderer_Callbacks_Struct](_o_h___audio_renderer___callbacks___struct.md) [OH_AudioRenderer_Callbacks](#oh_audiorenderer_callbacks) | 声明输出音频流的回调函数指针。  | 
59| typedef struct [OH_AudioCapturer_Callbacks_Struct](_o_h___audio_capturer___callbacks___struct.md) [OH_AudioCapturer_Callbacks](#oh_audiocapturer_callbacks) | 声明输入音频流的回调函数指针。  | 
60| typedef void(\* [OH_AudioRenderer_OutputDeviceChangeCallback](#oh_audiorenderer_outputdevicechangecallback))([OH_AudioRenderer](#oh_audiorenderer) \*renderer, void \*userData, [OH_AudioStream_DeviceChangeReason](#oh_audiostream_devicechangereason) reason) | 输出音频流设备变更的回调函数。  | 
61| typedef void(\* [OH_AudioRenderer_OnMarkReachedCallback](#oh_audiorenderer_onmarkreachedcallback))([OH_AudioRenderer](#oh_audiorenderer) \*renderer, uint32_t samplePos, void \*userData) | 到达标记位置时回调。  | 
62| typedef int32_t(\* [OH_AudioRenderer_WriteDataWithMetadataCallback](#oh_audiorenderer_writedatawithmetadatacallback))([OH_AudioRenderer](#oh_audiorenderer) \*renderer, void \*userData, void \*audioData, int32_t audioDataSize, void \*metadata, int32_t metadataSize) | 该函数指针将指向用于同时写入音频数据和元数据的回调函数。  | 
63| typedef [OH_AudioData_Callback_Result](#oh_audiodata_callback_result)(\* [OH_AudioRenderer_OnWriteDataCallback](#oh_audiorenderer_onwritedatacallback))([OH_AudioRenderer](#oh_audiorenderer) \*renderer, void \*userData, void \*audioData, int32_t audioDataSize) | 该函数指针将指向用于写入音频数据的回调函数。  | 
64
65
66### 枚举
67
68| 名称 | 描述 | 
69| -------- | -------- |
70| [OH_AudioCommon_Result](#oh_audiocommon_result) {<br/>AUDIOCOMMON_RESULT_SUCCESS = 0,<br/>AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM = 6800101,<br/>AUDIOCOMMON_RESULT_ERROR_NO_MEMORY = 6800102,<br/>AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE = 6800103,<br/>AUDIOCOMMON_RESULT_ERROR_UNSUPPORTED = 6800104,<br/>AUDIOCOMMON_RESULT_ERROR_TIMEOUT = 6800105,<br/>AUDIOCOMMON_RESULT_ERROR_STREAM_LIMIT = 6800201,<br/>AUDIOCOMMON_RESULT_ERROR_SYSTEM = 6800301<br/>} | 音频错误码。 | 
71| [OH_AudioScene](#oh_audioscene) { <br/>AUDIO_SCENE_DEFAULT = 0, <br/>AUDIO_SCENE_RINGING = 1, <br/>AUDIO_SCENE_PHONE_CALL = 2, <br/>AUDIO_SCENE_VOICE_CHAT = 3 } | 定义音频场景。  | 
72| [OH_AudioDevice_ChangeType](#oh_audiodevice_changetype) {<br/>AUDIO_DEVICE_CHANGE_TYPE_CONNECT = 0,<br/>AUDIO_DEVICE_CHANGE_TYPE_DISCONNECT = 1<br/>} | 定义音频设备更改类型。 | 
73| [OH_AudioDevice_Role](#oh_audiodevice_role) {<br/>AUDIO_DEVICE_ROLE_INPUT = 1,<br/>AUDIO_DEVICE_ROLE_OUTPUT = 2<br/>} | 定义音频设备角色。 | 
74| [OH_AudioDevice_Type](#oh_audiodevice_type) {<br/>AUDIO_DEVICE_TYPE_INVALID = 0,<br/>AUDIO_DEVICE_TYPE_EARPIECE = 1,<br/>AUDIO_DEVICE_TYPE_SPEAKER = 2,<br/>AUDIO_DEVICE_TYPE_WIRED_HEADSET = 3,<br/>AUDIO_DEVICE_TYPE_WIRED_HEADPHONES = 4,<br/>AUDIO_DEVICE_TYPE_BLUETOOTH_SCO = 7,<br/>AUDIO_DEVICE_TYPE_BLUETOOTH_A2DP = 8,<br/>AUDIO_DEVICE_TYPE_MIC = 15,<br/>AUDIO_DEVICE_TYPE_USB_HEADSET = 22,<br/>AUDIO_DEVICE_TYPE_DISPLAY_PORT = 23,<br/>AUDIO_DEVICE_TYPE_REMOTE_CAST = 24,<br/>AUDIO_DEVICE_TYPE_DEFAULT = 1000<br/>} | 定义音频设备类型。 | 
75| [OH_AudioDevice_Flag](#oh_audiodevice_flag) {<br/>AUDIO_DEVICE_FLAG_NONE = 0,<br/>AUDIO_DEVICE_FLAG_OUTPUT = 1,<br/>AUDIO_DEVICE_FLAG_INPUT = 2,<br/>AUDIO_DEVICE_FLAG_ALL = 3<br/>} | 定义音频设备标志。 | 
76| [OH_AudioDevice_Usage](#oh_audiodevice_usage) {<br/>AUDIO_DEVICE_USAGE_MEDIA_OUTPUT = 1, <br/>AUDIO_DEVICE_USAGE_MEDIA_INPUT = 2, <br/>AUDIO_DEVICE_USAGE_MEDIA_ALL = 3, <br/>AUDIO_DEVICE_USAGE_CALL_OUTPUT = 4,<br/>AUDIO_DEVICE_USAGE_CALL_INPUT = 8, <br/>AUDIO_DEVICE_USAGE_CALL_ALL = 12<br/>} | 定义可获取的设备种类。  | 
77| [OH_AudioSession_ConcurrencyMode](#oh_audiosession_concurrencymode) { <br/>CONCURRENCY_DEFAULT = 0, <br/>CONCURRENCY_MIX_WITH_OTHERS = 1, <br/>CONCURRENCY_DUCK_OTHERS = 2, <br/>CONCURRENCY_PAUSE_OTHERS = 3 } | 音频并发模式。  | 
78| [OH_AudioSession_DeactivatedReason](#oh_audiosession_deactivatedreason) { <br/>DEACTIVATED_LOWER_PRIORITY = 0, <br/>DEACTIVATED_TIMEOUT = 1 } | 音频会话停用原因。  | 
79| [OH_AudioStream_Result](#oh_audiostream_result) {<br/>AUDIOSTREAM_SUCCESS = 0,<br/>AUDIOSTREAM_ERROR_INVALID_PARAM = 1,<br/>AUDIOSTREAM_ERROR_ILLEGAL_STATE = 2,<br/>AUDIOSTREAM_ERROR_SYSTEM = 3<br/>} | 音频错误码。 | 
80| [OH_AudioStream_Type](#oh_audiostream_type) {<br/>AUDIOSTREAM_TYPE_RENDERER = 1,<br/>AUDIOSTREAM_TYPE_CAPTURER = 2<br/>} | 音频流类型。 | 
81| [OH_AudioStream_SampleFormat](#oh_audiostream_sampleformat) {<br/>AUDIOSTREAM_SAMPLE_U8 = 0,<br/>AUDIOSTREAM_SAMPLE_S16LE = 1,<br/>AUDIOSTREAM_SAMPLE_S24LE = 2,<br/>AUDIOSTREAM_SAMPLE_S32LE = 3<br/>} | 定义音频流采样格式。 | 
82| [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) { <br/>AUDIOSTREAM_ENCODING_TYPE_RAW = 0, <br/>AUDIOSTREAM_ENCODING_TYPE_AUDIOVIVID = 1 <br/>} | 定义音频流编码类型。  | 
83| [OH_AudioStream_Usage](#oh_audiostream_usage) {<br/>AUDIOSTREAM_USAGE_UNKNOWN = 0,<br/>AUDIOSTREAM_USAGE_MUSIC = 1,<br/>AUDIOSTREAM_USAGE_VOICE_COMMUNICATION = 2,<br/>AUDIOSTREAM_USAGE_VOICE_ASSISTANT = 3,<br/>AUDIOSTREAM_USAGE_ALARM = 4,<br/>AUDIOSTREAM_USAGE_VOICE_MESSAGE = 5,<br/>AUDIOSTREAM_USAGE_RINGTONE = 6,<br/>AUDIOSTREAM_USAGE_NOTIFICATION = 7,<br/>AUDIOSTREAM_USAGE_ACCESSIBILITY = 8,<br/>AUDIOSTREAM_USAGE_MOVIE = 10,<br/>AUDIOSTREAM_USAGE_GAME = 11,<br/>AUDIOSTREAM_USAGE_AUDIOBOOK = 12,<br/>AUDIOSTREAM_USAGE_NAVIGATION = 13,<br/>AUDIOSTREAM_USAGE_VIDEO_COMMUNICATION = 17<br/>} | 定义音频流使用场景。 | 
84| [OH_AudioStream_LatencyMode](#oh_audiostream_latencymode) {<br/>AUDIOSTREAM_LATENCY_MODE_NORMAL = 0,<br/>AUDIOSTREAM_LATENCY_MODE_FAST = 1<br/>} | 定义音频时延模式。 | 
85| [OH_AudioStream_State](#oh_audiostream_state) {<br/>AUDIOSTREAM_STATE_INVALID = -1,<br/>AUDIOSTREAM_STATE_NEW = 0,<br/>AUDIOSTREAM_STATE_PREPARED = 1,<br/>AUDIOSTREAM_STATE_RUNNING = 2,<br/>AUDIOSTREAM_STATE_STOPPED = 3,<br/>AUDIOSTREAM_STATE_RELEASED = 4,<br/>AUDIOSTREAM_STATE_PAUSED = 5<br/>} | 定义音频流的状态。 | 
86| [OH_AudioStream_SourceType](#oh_audiostream_sourcetype) {<br/>AUDIOSTREAM_SOURCE_TYPE_INVALID = -1,<br/>AUDIOSTREAM_SOURCE_TYPE_MIC = 0,<br/>AUDIOSTREAM_SOURCE_TYPE_VOICE_RECOGNITION = 1,<br/>AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE = 2,<br/>AUDIOSTREAM_SOURCE_TYPE_VOICE_COMMUNICATION = 7<br/>} | 定义音频流使用场景。 | 
87| [OH_AudioStream_Event](#oh_audiostream_event) {<br/>AUDIOSTREAM_EVENT_ROUTING_CHANGED = 0<br/>} | 定义音频事件。 | 
88| [OH_AudioInterrupt_ForceType](#oh_audiointerrupt_forcetype) {<br/>AUDIOSTREAM_INTERRUPT_FORCE = 0,<br/>AUDIOSTREAM_INTERRUPT_SHARE = 1<br/>} | 定义音频中断类型。 | 
89| [OH_AudioInterrupt_Hint](#oh_audiointerrupt_hint) {<br/>AUDIOSTREAM_INTERRUPT_HINT_NONE = 0,<br/>AUDIOSTREAM_INTERRUPT_HINT_RESUME = 1,<br/>AUDIOSTREAM_INTERRUPT_HINT_PAUSE = 2,<br/>AUDIOSTREAM_INTERRUPT_HINT_STOP = 3,<br/>AUDIOSTREAM_INTERRUPT_HINT_DUCK = 4,<br/>AUDIOSTREAM_INTERRUPT_HINT_UNDUCK = 5<br/>} | 定义音频中断提示类型。 | 
90| [OH_AudioInterrupt_Mode](#oh_audiointerrupt_mode) {<br/> AUDIOSTREAM_INTERRUPT_MODE_SHARE = 0, <br/>AUDIOSTREAM_INTERRUPT_MODE_INDEPENDENT = 1 <br/>} | 定义音频中断模式。  | 
91| [OH_AudioStream_AudioEffectMode](#oh_audiostream_audioeffectmode) { <br/>EFFECT_NONE = 0, <br/>EFFECT_DEFAULT = 1 <br/>} | 定义音效模式。  | 
92| [OH_AudioStream_DeviceChangeReason](#oh_audiostream_devicechangereason) {<br/>REASON_UNKNOWN = 0,<br/>REASON_NEW_DEVICE_AVAILABLE = 1,<br/>REASON_OLD_DEVICE_UNAVAILABLE = 2,<br/>REASON_OVERRODE = 3<br/>} | 流设备变更原因。 | 
93| [OH_AudioStream_PrivacyType](#oh_audiostream_privacytype) { <br/>AUDIO_STREAM_PRIVACY_TYPE_PUBLIC = 0, <br/>AUDIO_STREAM_PRIVACY_TYPE_PRIVATE = 1 <br/>} | 用于标识对应播放音频流是否支持被其他应用录制。  | 
94| [OH_AudioData_Callback_Result](#oh_audiodata_callback_result) { <br/>AUDIO_DATA_CALLBACK_RESULT_INVALID = -1, <br/>AUDIO_DATA_CALLBACK_RESULT_VALID = 0 <br/>} | 定义音频数据回调结果。  | 
95
96
97### 函数
98
99| 名称 | 描述 | 
100| -------- | -------- |
101| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceRole](#oh_audiodevicedescriptor_getdevicerole)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, [OH_AudioDevice_Role](#oh_audiodevice_role) \*deviceRole) | 查询目标音频设备描述符的设备角色。  | 
102| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceType](#oh_audiodevicedescriptor_getdevicetype)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, [OH_AudioDevice_Type](#oh_audiodevice_type) \*deviceType) | 查询目标音频设备描述符的设备类型。  | 
103| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceId](#oh_audiodevicedescriptor_getdeviceid)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, uint32_t \*id) | 查询目标音频设备描述符的设备id。  | 
104| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceName](#oh_audiodevicedescriptor_getdevicename)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, char \*\*name) | 查询目标音频设备描述符的设备名称。  | 
105| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceAddress](#oh_audiodevicedescriptor_getdeviceaddress)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, char \*\*address) | 查询目标音频设备描述符的设备地址。  | 
106| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceSampleRates](#oh_audiodevicedescriptor_getdevicesamplerates)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, uint32_t \*\*sampleRates, uint32_t \*size) | 查询目标音频设备描述符的采样率数组。  | 
107| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceChannelCounts](#oh_audiodevicedescriptor_getdevicechannelcounts)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, uint32_t \*\*channelCounts, uint32_t \*size) | 查询目标音频设备描述符的设备通道计数数组。  | 
108| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceDisplayName](#oh_audiodevicedescriptor_getdevicedisplayname)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, char \*\*displayName) | 查询目标音频设备描述符的显示名称。  | 
109| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioDeviceDescriptor_GetDeviceEncodingTypes](#oh_audiodevicedescriptor_getdeviceencodingtypes)([OH_AudioDeviceDescriptor](#oh_audiodevicedescriptor) \*audioDeviceDescriptor, [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) \*\*encodingTypes, uint32_t \*size) | 查询目标音频设备描述符的编码类型数组。  | 
110| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_GetAudioManager](#oh_getaudiomanager)([OH_AudioManager](#oh_audiomanager) \*\*audioManager) | 获取音频管理器。  | 
111| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_GetAudioScene](#oh_getaudioscene)([OH_AudioManager](#oh_audiomanager) \*manager, [OH_AudioScene](#oh_audioscene) \*scene) | 获取音频场景模式。  | 
112| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*\*audioRoutingManager) | 查询音频路由管理器句柄,该句柄应设置为路由相关函数中的第一个参数。  | 
113| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioDevice_Flag](#oh_audiodevice_flag) deviceFlag, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*\*audioDeviceDescriptorArray) | 根据输入的deviceFlag查询可用的设备。  | 
114| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_GetAvailableDevices](#oh_audioroutingmanager_getavailabledevices)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioDevice_Usage](#oh_audiodevice_usage) deviceUsage, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*\*audioDeviceDescriptorArray) | 获取音频可选设备列表。  | 
115| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_GetPreferredOutputDevice](#oh_audioroutingmanager_getpreferredoutputdevice)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioStream_Usage](#oh_audiostream_usage) streamUsage, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*\*audioDeviceDescriptorArray) | 根据音频输出流的使用场景,获取优先级最高的输出设备。  | 
116| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_GetPreferredInputDevice](#oh_audioroutingmanager_getpreferredinputdevice)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioStream_SourceType](#oh_audiostream_sourcetype) sourceType, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*\*audioDeviceDescriptorArray) | 根据音频输入流的使用场景,获取优先级最高的输入设备。  | 
117| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_RegisterDeviceChangeCallback](#oh_audioroutingmanager_registerdevicechangecallback)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioDevice_Flag](#oh_audiodevice_flag) deviceFlag, [OH_AudioRoutingManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback) callback) | 注册音频路由管理器的设备更改回调。  | 
118| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_UnregisterDeviceChangeCallback](#oh_audioroutingmanager_unregisterdevicechangecallback)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioRoutingManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback) callback) | 取消注册音频路由管理器的设备更改回调。  | 
119| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)([OH_AudioRoutingManager](#oh_audioroutingmanager) \*audioRoutingManager, [OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) \*audioDeviceDescriptorArray) | 释放音频设备描述符数组对象。  | 
120| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)([OH_AudioSessionManager](#oh_audiosessionmanager) \*\*audioSessionManager) | 获取音频会话管理器。  | 
121| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioSessionManager_ActivateAudioSession](#oh_audiosessionmanager_activateaudiosession)([OH_AudioSessionManager](#oh_audiosessionmanager) \*audioSessionManager, const [OH_AudioSession_Strategy](_o_h___audio_session___strategy.md) \*strategy) | 激活音频会话。  | 
122| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioSessionManager_DeactivateAudioSession](#oh_audiosessionmanager_deactivateaudiosession)([OH_AudioSessionManager](#oh_audiosessionmanager) \*audioSessionManager) | 停用音频会话。  | 
123| bool [OH_AudioSessionManager_IsAudioSessionActivated](#oh_audiosessionmanager_isaudiosessionactivated)([OH_AudioSessionManager](#oh_audiosessionmanager) \*audioSessionManager) | 检查音频会话是否已激活。  | 
124| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioSessionManager_RegisterSessionDeactivatedCallback](#oh_audiosessionmanager_registersessiondeactivatedcallback)([OH_AudioSessionManager](#oh_audiosessionmanager) \*audioSessionManager, [OH_AudioSession_DeactivatedCallback](#oh_audiosession_deactivatedcallback) callback) | 注册音频会话停用事件回调。  | 
125| [OH_AudioCommon_Result](#oh_audiocommon_result) [OH_AudioSessionManager_UnregisterSessionDeactivatedCallback](#oh_audiosessionmanager_unregistersessiondeactivatedcallback)([OH_AudioSessionManager](#oh_audiosessionmanager) \*audioSessionManager, [OH_AudioSession_DeactivatedCallback](#oh_audiosession_deactivatedcallback) callback) | 取消注册音频会话停用事件回调。  | 
126| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_Release](#oh_audiocapturer_release)([OH_AudioCapturer](#oh_audiocapturer) \*capturer) | 释放输入音频流。  | 
127| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_Start](#oh_audiocapturer_start)([OH_AudioCapturer](#oh_audiocapturer) \*capturer) | 开始获取音频数据。  | 
128| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_Pause](#oh_audiocapturer_pause)([OH_AudioCapturer](#oh_audiocapturer) \*capturer) | 暂停输入音频流。  | 
129| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_Stop](#oh_audiocapturer_stop)([OH_AudioCapturer](#oh_audiocapturer) \*capturer) | 停止输入音频流。  | 
130| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_Flush](#oh_audiocapturer_flush)([OH_AudioCapturer](#oh_audiocapturer) \*capturer) | 丢弃获取的音频数据。  | 
131| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetCurrentState](#oh_audiocapturer_getcurrentstate)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, [OH_AudioStream_State](#oh_audiostream_state) \*state) | 查询当前输入音频流状态。  | 
132| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetLatencyMode](#oh_audiocapturer_getlatencymode)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, [OH_AudioStream_LatencyMode](#oh_audiostream_latencymode) \*latencyMode) | 查询当前输入音频流时延模式。  | 
133| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetStreamId](#oh_audiocapturer_getstreamid)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, uint32_t \*streamId) | 查询当前输入音频流ID。  | 
134| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetSamplingRate](#oh_audiocapturer_getsamplingrate)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, int32_t \*rate) | 查询当前输入音频流采样率。  | 
135| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetChannelCount](#oh_audiocapturer_getchannelcount)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, int32_t \*channelCount) | 查询当前输入音频流通道数。  | 
136| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetSampleFormat](#oh_audiocapturer_getsampleformat)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, [OH_AudioStream_SampleFormat](#oh_audiostream_sampleformat) \*sampleFormat) | 查询当前输入音频流采样格式。  | 
137| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetEncodingType](#oh_audiocapturer_getencodingtype)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) \*encodingType) | 查询当前输入音频流编码类型。  | 
138| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetCapturerInfo](#oh_audiocapturer_getcapturerinfo)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, [OH_AudioStream_SourceType](#oh_audiostream_sourcetype) \*sourceType) | 查询当前输入音频流工作场景类型。  | 
139| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetFrameSizeInCallback](#oh_audiocapturer_getframesizeincallback)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, int32_t \*frameSize) | 在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。  | 
140| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetTimestamp](#oh_audiocapturer_gettimestamp)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, clockid_t clockId, int64_t \*framePosition, int64_t \*timestamp) | 获取输入音频流时间戳和位置信息。  | 
141| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetFramesRead](#oh_audiocapturer_getframesread)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, int64_t \*frames) | 查询自创建流以来已读取的帧数。  | 
142| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioCapturer_GetOverflowCount](#oh_audiocapturer_getoverflowcount)([OH_AudioCapturer](#oh_audiocapturer) \*capturer, uint32_t \*count) | 查询当前录制音频流过载数。  | 
143| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_Release](#oh_audiorenderer_release)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 释放输出音频流。  | 
144| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_Start](#oh_audiorenderer_start)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 开始输出音频数据。  | 
145| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_Pause](#oh_audiorenderer_pause)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 暂停输出音频流。  | 
146| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_Stop](#oh_audiorenderer_stop)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 停止输出音频流。  | 
147| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_Flush](#oh_audiorenderer_flush)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 丢弃已经写入的音频数据。  | 
148| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetCurrentState](#oh_audiorenderer_getcurrentstate)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_State](#oh_audiostream_state) \*state) | 查询当前输出音频流状态。  | 
149| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetSamplingRate](#oh_audiorenderer_getsamplingrate)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, int32_t \*rate) | 查询当前输出音频流采样率。  | 
150| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetStreamId](#oh_audiorenderer_getstreamid)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, uint32_t \*streamId) | 查询当前输出音频流ID。  | 
151| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetChannelCount](#oh_audiorenderer_getchannelcount)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, int32_t \*channelCount) | 查询当前输出音频流通道数。  | 
152| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetSampleFormat](#oh_audiorenderer_getsampleformat)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_SampleFormat](#oh_audiostream_sampleformat) \*sampleFormat) | 查询当前输出音频流采样格式。  | 
153| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetLatencyMode](#oh_audiorenderer_getlatencymode)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_LatencyMode](#oh_audiostream_latencymode) \*latencyMode) | 查询当前输出音频流时延模式。  | 
154| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetRendererInfo](#oh_audiorenderer_getrendererinfo)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_Usage](#oh_audiostream_usage) \*usage) | 查询当前输出音频流工作场景类型。  | 
155| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetEncodingType](#oh_audiorenderer_getencodingtype)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) \*encodingType) | 查询当前输出音频流编码类型。  | 
156| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetFramesWritten](#oh_audiorenderer_getframeswritten)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, int64_t \*frames) | 查询自创建流以来已写入的帧数。  | 
157| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetTimestamp](#oh_audiorenderer_gettimestamp)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, clockid_t clockId, int64_t \*framePosition, int64_t \*timestamp) | 获取输出音频流时间戳和位置信息。  | 
158| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetFrameSizeInCallback](#oh_audiorenderer_getframesizeincallback)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, int32_t \*frameSize) | 在回调中查询帧大小。  | 
159| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetSpeed](#oh_audiorenderer_getspeed)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, float \*speed) | 获取音频渲染速率。  | 
160| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetSpeed](#oh_audiorenderer_setspeed)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, float speed) | 设置音频渲染速率。  | 
161| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetMarkPosition](#oh_audiorenderer_setmarkposition)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, uint32_t samplePos, [OH_AudioRenderer_OnMarkReachedCallback](#oh_audiorenderer_onmarkreachedcallback) callback, void \*userData) | 在当前渲染器上设置标记位置。调用此函数将覆盖已设置的标记位置。  | 
162| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_CancelMark](#oh_audiorenderer_cancelmark)([OH_AudioRenderer](#oh_audiorenderer) \*renderer) | 取消由[OH_AudioRenderer_SetMarkPosition](#oh_audiorenderer_setmarkposition)设置的标记。  | 
163| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetVolume](#oh_audiorenderer_setvolume)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, float volume) | 设置当前音频流音量值。  | 
164| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetVolumeWithRamp](#oh_audiorenderer_setvolumewithramp)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, float volume, int32_t durationMs) | 在指定时间范围内使用渐变更改音量。  | 
165| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetVolume](#oh_audiorenderer_getvolume)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, float \*volume) | 获取当前音频流音量值。  | 
166| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetUnderflowCount](#oh_audiorenderer_getunderflowcount)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, uint32_t \*count) | 查询当前播放音频流欠载数。  | 
167| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetChannelLayout](#oh_audiorenderer_getchannellayout)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1) \*channelLayout) | 查询当前音频流声道布局。  | 
168| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetEffectMode](#oh_audiorenderer_geteffectmode)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_AudioEffectMode](#oh_audiostream_audioeffectmode) \*effectMode) | 查询当前音频流音效模式。  | 
169| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetEffectMode](#oh_audiorenderer_seteffectmode)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_AudioEffectMode](#oh_audiostream_audioeffectmode) effectMode) | 设置当前音频流音效模式。  | 
170| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetRendererPrivacy](#oh_audiorenderer_getrendererprivacy)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioStream_PrivacyType](#oh_audiostream_privacytype) \*privacy) | 查询当前播放音频流是否会被其它应用录制。  | 
171| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetSilentModeAndMixWithOthers](#oh_audiorenderer_setsilentmodeandmixwithothers)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, bool on) | 设置静音并发播放模式。  | 
172| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_GetSilentModeAndMixWithOthers](#oh_audiorenderer_getsilentmodeandmixwithothers)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, bool \*on) | 查询当前音频流是否开启静音并发播放。  | 
173| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioRenderer_SetDefaultOutputDevice](#oh_audiorenderer_setdefaultoutputdevice)([OH_AudioRenderer](#oh_audiorenderer) \*renderer, [OH_AudioDevice_Type](#oh_audiodevice_type) deviceType) | 设置默认本机内置发声设备。  | 
174| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_Create](#oh_audiostreambuilder_create)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*\*builder, [OH_AudioStream_Type](#oh_audiostream_type) type) | 创建一个输入或者输出类型的音频流构造器。  | 
175| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_Destroy](#oh_audiostreambuilder_destroy)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder) | 销毁一个音频流构造器。  | 
176| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetSamplingRate](#oh_audiostreambuilder_setsamplingrate)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, int32_t rate) | 设置音频流的采样率属性。  | 
177| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetChannelCount](#oh_audiostreambuilder_setchannelcount)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, int32_t channelCount) | 设置音频流的通道数属性。  | 
178| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetSampleFormat](#oh_audiostreambuilder_setsampleformat)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_SampleFormat](#oh_audiostream_sampleformat) format) | 设置音频流的采样格式属性。  | 
179| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetEncodingType](#oh_audiostreambuilder_setencodingtype)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) encodingType) | 设置音频流的编码类型属性。  | 
180| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetLatencyMode](#oh_audiostreambuilder_setlatencymode)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_LatencyMode](#oh_audiostream_latencymode) latencyMode) | 设置音频流的时延模式。  | 
181| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetChannelLayout](#oh_audiostreambuilder_setchannellayout)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1) channelLayout) | 设置音频流的声道布局。  | 
182| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererInfo](#oh_audiostreambuilder_setrendererinfo)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_Usage](#oh_audiostream_usage) usage) | 设置输出音频流的工作场景。  | 
183| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetCapturerInfo](#oh_audiostreambuilder_setcapturerinfo)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_SourceType](#oh_audiostream_sourcetype) sourceType) | 设置输入音频流的工作场景。  | 
184| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioRenderer_Callbacks](#oh_audiorenderer_callbacks) callbacks, void \*userData) | 设置输出音频流的回调。  | 
185| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback](#oh_audiostreambuilder_setrendereroutputdevicechangecallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioRenderer_OutputDeviceChangeCallback](#oh_audiorenderer_outputdevicechangecallback) callback, void \*userData) | 设置输出音频流设备变更的回调。  | 
186| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererPrivacy](#oh_audiostreambuilder_setrendererprivacy)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioStream_PrivacyType](#oh_audiostream_privacytype) privacy) | 设置当前播放音频流是否会被其它应用录制。  | 
187| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetCapturerCallback](#oh_audiostreambuilder_setcapturercallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioCapturer_Callbacks](#oh_audiocapturer_callbacks) callbacks, void \*userData) | 设置输入音频流的回调。  | 
188| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback](#oh_audiostreambuilder_setwritedatawithmetadatacallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioRenderer_WriteDataWithMetadataCallback](#oh_audiorenderer_writedatawithmetadatacallback) callback, void \*userData) | 设置同时写入音频数据和元数据的回调。  | 
189| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioRenderer](#oh_audiorenderer) \*\*audioRenderer) | 创建输出音频流实例。  | 
190| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioCapturer](#oh_audiocapturer) \*\*audioCapturer) | 创建输入音频流实例。  | 
191| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetFrameSizeInCallback](#oh_audiostreambuilder_setframesizeincallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, int32_t frameSize) | 用于播放时设置每次回调的帧长,帧长至少为音频硬件一次处理的数据大小,并且小于内部缓冲容量的一半。  | 
192| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererInterruptMode](#oh_audiostreambuilder_setrendererinterruptmode)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioInterrupt_Mode](#oh_audiointerrupt_mode) mode) | 设置流客户端的中断模式。 | 
193| [OH_AudioStream_Result](#oh_audiostream_result) [OH_AudioStreamBuilder_SetRendererWriteDataCallback](#oh_audiostreambuilder_setrendererwritedatacallback)([OH_AudioStreamBuilder](#oh_audiostreambuilder) \*builder, [OH_AudioRenderer_OnWriteDataCallback](#oh_audiorenderer_onwritedatacallback) callback, void \*userData) | 设置写入音频数据的回调。  | 
194
195
196## 类型定义说明
197
198
199### OH_AudioCapturer
200
201```
202typedef struct OH_AudioCapturerStruct OH_AudioCapturer
203```
204**描述**
205声明输入音频流。
206
207输入音频流的实例被用来获取音频数据。
208
209**系统能力:** SystemCapability.Multimedia.Audio.Core
210
211**起始版本:** 10
212
213
214### OH_AudioCapturer_Callbacks
215
216```
217typedef struct OH_AudioCapturer_Callbacks_Struct OH_AudioCapturer_Callbacks
218```
219**描述**
220声明输入音频流的回调函数指针。
221
222**系统能力:** SystemCapability.Multimedia.Audio.Core
223
224**起始版本:** 10
225
226
227### OH_AudioDeviceDescriptor
228
229```
230typedef struct OH_AudioDeviceDescriptor OH_AudioDeviceDescriptor
231```
232**描述**
233声明音频设备描述符。 
234
235该实例用于获取更多音频设备详细信息属性。
236
237**起始版本:** 12
238
239
240### OH_AudioDeviceDescriptorArray
241
242```
243typedef struct OH_AudioDeviceDescriptorArray OH_AudioDeviceDescriptorArray
244```
245**描述**
246声明音频设备描述符数组。
247
248**起始版本:** 12
249
250
251### OH_AudioManager
252
253```
254typedef struct OH_AudioManager OH_AudioManager
255```
256**描述**
257声明音频管理器。
258
259用于管理音频管理相关功能。
260
261**起始版本:** 12
262
263
264### OH_AudioRenderer
265
266```
267typedef struct OH_AudioRendererStruct OH_AudioRenderer
268```
269**描述**
270声明输出音频流。
271
272输出音频流的实例被用来播放音频数据。
273
274**系统能力:** SystemCapability.Multimedia.Audio.Core
275
276**起始版本:** 10
277
278
279### OH_AudioRenderer_Callbacks
280
281```
282typedef struct OH_AudioRenderer_Callbacks_Struct OH_AudioRenderer_Callbacks
283```
284**描述**
285声明输出音频流的回调函数指针。
286
287**系统能力:** SystemCapability.Multimedia.Audio.Core
288
289**起始版本:** 10
290
291
292### OH_AudioRenderer_OnMarkReachedCallback
293
294```
295typedef void(* OH_AudioRenderer_OnMarkReachedCallback)(OH_AudioRenderer *renderer, uint32_t samplePos, void *userData)
296```
297**描述**
298到达标记位置时回调。
299
300**起始版本:** 12
301
302**参数:**
303
304| 名称 | 描述 | 
305| -------- | -------- |
306| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
307| samplePos | 设置目标标记位置。  | 
308| userData | 指向通过回调函数传递的应用数据指针。  | 
309
310
311### OH_AudioRenderer_OnWriteDataCallback
312
313```
314typedef OH_AudioData_Callback_Result(* OH_AudioRenderer_OnWriteDataCallback)(OH_AudioRenderer *renderer, void *userData, void *audioData, int32_t audioDataSize)
315```
316**描述**
317该函数指针将指向用于写入音频数据的回调函数。
318
319该函数类似于 [OH_AudioRenderer_Callbacks_Struct.OH_AudioRenderer_OnWriteData](_o_h___audio_renderer___callbacks___struct.md#oh_audiorenderer_onwritedata) 函数指针。但具有返回值,用于标识音频数据回调结果。 该函数的返回结果表示填充到缓冲区的数据是否有效。如果结果无效,用户填写的数据将不被播放。
320
321**系统能力:** SystemCapability.Multimedia.Audio.Core
322
323**起始版本:** 12
324
325**参数:**
326
327| 名称 | 描述 | 
328| -------- | -------- |
329| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
330| userData | 指向通过回调函数传递的应用数据指针。  | 
331| audioData | 指向用户写入的音频数据的指针。  | 
332| audioDataSize | 用户写入的音频数据的数据长度,以字节为单位。  | 
333
334**返回:**
335
336音频数据回调结果。
337
338**参见:**
339
340[OH_AudioRenderer_Callbacks_Struct.OH_AudioRenderer_OnWriteData](_o_h___audio_renderer___callbacks___struct.md#oh_audiorenderer_onwritedata)
341
342
343### OH_AudioRenderer_OutputDeviceChangeCallback
344
345```
346typedef void(* OH_AudioRenderer_OutputDeviceChangeCallback) (OH_AudioRenderer *renderer, void *userData, OH_AudioStream_DeviceChangeReason reason)
347```
348
349**描述**
350输出音频流设备变更的回调函数。
351
352**系统能力:** SystemCapability.Multimedia.Audio.Core
353
354**起始版本:** 11
355
356**参数:**
357
358| 名称 | 描述 | 
359| -------- | -------- |
360| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
361| userData | 指向通过回调函数传递的应用数据指针。  | 
362| reason | 流设备变更原因。  | 
363
364
365### OH_AudioRenderer_WriteDataWithMetadataCallback
366
367```
368typedef int32_t(* OH_AudioRenderer_WriteDataWithMetadataCallback)(OH_AudioRenderer *renderer, void *userData, void *audioData, int32_t audioDataSize, void *metadata, int32_t metadataSize)
369```
370**描述**
371该函数指针将指向用于同时写入音频数据和元数据的回调函数。
372
373**系统能力:** SystemCapability.Multimedia.Audio.Core
374
375**起始版本:** 12
376
377**参数:**
378
379| 名称 | 描述 | 
380| -------- | -------- |
381| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
382| userData | 指向通过回调函数传递的应用数据指针。  | 
383| audioData | 指向用户写入的音频数据的指针。  | 
384| audioDataSize | 用户写入的音频数据的数据长度,以字节为单位。  | 
385| metadata | 指向用户写入的元数据的指针。  | 
386| metadataSize | 用户写入的元数据的数据长度,以字节为单位。  | 
387
388**返回:**
389
390用户返回的回调函数的错误码。
391
392
393### OH_AudioRoutingManager
394
395```
396typedef struct OH_AudioRoutingManager OH_AudioRoutingManager
397```
398**描述**
399声明音频路由管理器,用于路由和设备相关功能的音频路由管理器的句柄。
400
401**起始版本:** 12
402
403
404### OH_AudioRoutingManager_OnDeviceChangedCallback
405
406```
407typedef int32_t(* OH_AudioRoutingManager_OnDeviceChangedCallback) (OH_AudioDevice_ChangeType type, OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray)
408```
409**描述**
410此函数指针将指向用于返回更改的音频设备描述符的回调函数,可能返回多个音频设备描述符。
411
412**起始版本:** 12
413
414**参数:**
415
416| 名称 | 描述 | 
417| -------- | -------- |
418| type | 设备连接状态类型。 [OH_AudioDevice_ChangeType](#oh_audiodevice_changetype) 已连接或断开。 | 
419| audioDeviceDescriptorArray | 音频设备描述符数组[OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md)。设置音频设备描述符值的指针变量,不要单独释放audioDeviceDescriptorArray指针, 而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)来释放DeviceDescriptor数组。 | 
420
421
422### OH_AudioSession_DeactivatedCallback
423
424```
425typedef int32_t(* OH_AudioSession_DeactivatedCallback)(OH_AudioSession_DeactivatedEvent event)
426```
427**描述**
428这个函数指针将指向用于监听音频会话停用事件的回调函数。
429
430**起始版本:** 12
431
432**参数:**
433
434| 名称 | 描述 | 
435| -------- | -------- |
436| event | 指向[OH_AudioSession_Deactivated_Event](#oh_audiosession_deactivatedevent)音频会话已停用事件。  | 
437
438
439### OH_AudioSession_DeactivatedEvent
440
441```
442typedef struct OH_AudioSession_DeactivatedEventOH_AudioSession_DeactivatedEvent
443```
444**描述**
445音频会话已停用事件。
446
447**起始版本:** 12
448
449
450### OH_AudioSession_Strategy
451
452```
453typedef struct OH_AudioSession_Strategy OH_AudioSession_Strategy
454```
455**描述**
456音频会话策略。
457
458**起始版本:** 12
459
460
461### OH_AudioSessionManager
462
463```
464typedef struct OH_AudioSessionManager OH_AudioSessionManager
465```
466**描述**
467声明音频会话管理器。
468
469用于管理音频会话相关功能。
470
471**起始版本:** 12
472
473
474### OH_AudioStreamBuilder
475
476```
477typedef struct OH_AudioStreamBuilderStruct OH_AudioStreamBuilder
478```
479**描述**
480声明音频流的构造器。
481
482构造器实例通常被用来设置音频流属性和创建音频流。
483
484**系统能力:** SystemCapability.Multimedia.Audio.Core
485
486**起始版本:** 10
487
488
489## 枚举类型说明
490
491
492### OH_AudioCommon_Result
493
494```
495enum OH_AudioCommon_Result
496```
497**描述**
498音频错误码。
499
500**起始版本:** 12
501
502| 枚举值 | 描述 | 
503| -------- | -------- |
504| AUDIOCOMMON_RESULT_SUCCESS  | 操作成功。   | 
505| AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM  | 入参错误。   | 
506| AUDIOCOMMON_RESULT_ERROR_NO_MEMORY  | 无内存。   | 
507| AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE  | 非法状态。   | 
508| AUDIOCOMMON_RESULT_ERROR_UNSUPPORTED  | 操作不支持。   | 
509| AUDIOCOMMON_RESULT_ERROR_TIMEOUT  | 操作超时。   | 
510| AUDIOCOMMON_RESULT_ERROR_STREAM_LIMIT  | 达到系统可支持的最大数量。   | 
511| AUDIOCOMMON_RESULT_ERROR_SYSTEM  | 系统通用错误。   | 
512
513
514### OH_AudioData_Callback_Result
515
516```
517enum OH_AudioData_Callback_Result
518```
519**描述**
520定义音频数据回调结果。
521
522**系统能力:** SystemCapability.Multimedia.Audio.Core
523
524**起始版本:** 12
525
526| 枚举值 | 描述 | 
527| -------- | -------- |
528| AUDIO_DATA_CALLBACK_RESULT_INVALID  | 表示音频数据回调结果无效。   | 
529| AUDIO_DATA_CALLBACK_RESULT_VALID  | 表示音频数据回调结果有效。   | 
530
531
532### OH_AudioDevice_ChangeType
533
534```
535enum OH_AudioDevice_ChangeType
536```
537**描述**
538定义音频设备更改类型。
539
540**起始版本:** 12
541
542| 枚举值 | 描述 | 
543| -------- | -------- |
544| AUDIO_DEVICE_CHANGE_TYPE_CONNECT | 设备连接。 | 
545| AUDIO_DEVICE_CHANGE_TYPE_DISCONNECT | 设备断开。 | 
546
547
548### OH_AudioDevice_Flag
549
550```
551enum OH_AudioDevice_Flag
552```
553**描述**
554定义音频设备标志。
555
556**起始版本:** 12
557
558| 枚举值 | 描述 | 
559| -------- | -------- |
560| AUDIO_DEVICE_FLAG_NONE | 无设备。 | 
561| AUDIO_DEVICE_FLAG_OUTPUT | 输出设备。 | 
562| AUDIO_DEVICE_FLAG_INPUT | 输入设备。 | 
563| AUDIO_DEVICE_FLAG_ALL | 所有设备。 | 
564
565
566### OH_AudioDevice_Role
567
568```
569enum OH_AudioDevice_Role
570```
571**描述**
572定义音频设备角色。
573
574**起始版本:** 12
575
576| 枚举值 | 描述 | 
577| -------- | -------- |
578| AUDIO_DEVICE_ROLE_INPUT | 输入设备。 | 
579| AUDIO_DEVICE_ROLE_OUTPUT | 输出设备。 | 
580
581
582### OH_AudioDevice_Type
583
584```
585enum OH_AudioDevice_Type
586```
587**描述**
588定义音频设备类型。
589
590**起始版本:** 12
591
592| 枚举值 | 描述 | 
593| -------- | -------- |
594| AUDIO_DEVICE_TYPE_INVALID | 无效设备。 | 
595| AUDIO_DEVICE_TYPE_EARPIECE | 内置听筒。 | 
596| AUDIO_DEVICE_TYPE_SPEAKER | 内置扬声器。 | 
597| AUDIO_DEVICE_TYPE_WIRED_HEADSET | 带话筒的耳机。 | 
598| AUDIO_DEVICE_TYPE_WIRED_HEADPHONES | 无话筒的耳机。 | 
599| AUDIO_DEVICE_TYPE_BLUETOOTH_SCO | 使用面向同步连接链路(SCO)的蓝牙设备。 | 
600| AUDIO_DEVICE_TYPE_BLUETOOTH_A2DP | 使用高级音频分布模式(A2DP)的蓝牙设备。 | 
601| AUDIO_DEVICE_TYPE_MIC | 内置麦克风。 | 
602| AUDIO_DEVICE_TYPE_USB_HEADSET | USB音频耳机。 | 
603| AUDIO_DEVICE_TYPE_DISPLAY_PORT | 显示端口(DisplayPort)设备。 | 
604| AUDIO_DEVICE_TYPE_REMOTE_CAST | 音频被系统应用投送到其他远程的设备。 | 
605| AUDIO_DEVICE_TYPE_DEFAULT | 默认设备类型。 | 
606
607
608### OH_AudioDevice_Usage
609
610```
611enum OH_AudioDevice_Usage
612```
613**描述**
614定义可获取的设备种类。
615
616**起始版本:** 12
617
618| 枚举值 | 描述 | 
619| -------- | -------- |
620| AUDIO_DEVICE_USAGE_MEDIA_OUTPUT  | 媒体输出设备。 | 
621| AUDIO_DEVICE_USAGE_MEDIA_INPUT  | 媒体输入设备。 | 
622| AUDIO_DEVICE_USAGE_MEDIA_ALL  | 所有媒体设备。 | 
623| AUDIO_DEVICE_USAGE_CALL_OUTPUT  | 通话输出设备。 | 
624| AUDIO_DEVICE_USAGE_CALL_INPUT  | 通话输入设备。 | 
625| AUDIO_DEVICE_USAGE_CALL_ALL  | 所有通话设备。 | 
626
627
628### OH_AudioInterrupt_ForceType
629
630```
631enum OH_AudioInterrupt_ForceType
632```
633**描述**
634定义音频中断类型。
635
636当用户监听到音频中断时,将获取此信息。
637
638此类型表示本次音频打断的操作是否已由系统强制执行,具体操作信息(如音频暂停、停止等)可通过[OH_AudioInterrupt_Hint](#oh_audiointerrupt_hint)获取。
639
640**系统能力:** SystemCapability.Multimedia.Audio.Core
641
642**起始版本:** 10
643
644| 枚举值 | 描述 | 
645| -------- | -------- |
646| AUDIOSTREAM_INTERRUPT_FORCE  | 强制打断类型,即具体操作已由系统强制执行。   | 
647| AUDIOSTREAM_INTERRUPT_SHARE  | 共享打断类型,即系统不执行具体操作,通过[OH_AudioInterrupt_Hint](#oh_audiointerrupt_hint)提示并建议应用操作,应用可自行决策下一步处理方式。  | 
648
649
650### OH_AudioInterrupt_Hint
651
652```
653enum OH_AudioInterrupt_Hint
654```
655**描述**
656定义音频中断提示类型。
657
658当用户监听到音频中断时,将获取此信息。
659
660此类型表示根据焦点策略,当前需要对音频流的具体操作(如暂停、调整音量等)。可以结合[OH_AudioInterrupt_ForceType](#oh_audiointerrupt_forcetype)信息,判断该操作是否已由系统强制执行。
661
662**系统能力:** SystemCapability.Multimedia.Audio.Core
663
664**起始版本:** 10
665
666| 枚举值 | 描述 | 
667| -------- | -------- |
668| AUDIOSTREAM_INTERRUPT_HINT_NONE  | 不提示。   | 
669| AUDIOSTREAM_INTERRUPT_HINT_RESUME  | 提示音频恢复,应用可主动触发开始渲染或开始采集的相关操作。<br>此操作无法由系统强制执行,其对应的[OH_AudioInterrupt_ForceType](#oh_audiointerrupt_forcetype)一定为AUDIOSTREAM_INTERRUPT_SHARE类型。   | 
670| AUDIOSTREAM_INTERRUPT_HINT_PAUSE  | 提示音频暂停,暂时失去音频焦点。<br>后续待焦点可用时,会出现AUDIOSTREAM_INTERRUPT_HINT_RESUME事件。   | 
671| AUDIOSTREAM_INTERRUPT_HINT_STOP  | 提示音频停止,彻底失去音频焦点。   | 
672| AUDIOSTREAM_INTERRUPT_HINT_DUCK  | 提示音频躲避开始,音频降低音量播放,而不会停止。   | 
673| AUDIOSTREAM_INTERRUPT_HINT_UNDUCK  | 提示音量躲避结束,音频恢复正常音量。   | 
674
675
676### OH_AudioInterrupt_Mode
677
678```
679enum OH_AudioInterrupt_Mode
680```
681**描述**
682定义音频中断模式。
683
684通常用来设置音频中断模式。
685
686**系统能力:** SystemCapability.Multimedia.Audio.Core
687
688**起始版本:** 12
689
690| 枚举值 | 描述 | 
691| -------- | -------- |
692| AUDIOSTREAM_INTERRUPT_MODE_SHARE  | 共享模式。  | 
693| AUDIOSTREAM_INTERRUPT_MODE_INDEPENDENT  | 独立模式。 | 
694
695
696### OH_AudioScene
697
698```
699enum OH_AudioScene
700```
701**描述**
702定义音频场景。
703
704**起始版本:** 12
705
706| 枚举值 | 描述 | 
707| -------- | -------- |
708| AUDIO_SCENE_DEFAULT  | 默认音频场景。 | 
709| AUDIO_SCENE_RINGING  | 响铃场景。 | 
710| AUDIO_SCENE_PHONE_CALL  | 电话场景。 | 
711| AUDIO_SCENE_VOICE_CHAT  | 语音聊天场景。 | 
712
713
714### OH_AudioSession_ConcurrencyMode
715
716```
717enum OH_AudioSession_ConcurrencyMode
718```
719**描述**
720音频并发模式。
721
722**起始版本:** 12
723
724| 枚举值 | 描述 | 
725| -------- | -------- |
726| CONCURRENCY_DEFAULT  | 默认使用系统策略。   | 
727| CONCURRENCY_MIX_WITH_OTHERS  | 和其它正在播放应用进行混音。   | 
728| CONCURRENCY_DUCK_OTHERS  | 后来播放应用压低正在播放应用的音量。   | 
729| CONCURRENCY_PAUSE_OTHERS  | 后来播放应用暂停正在播放应用。   | 
730
731
732### OH_AudioSession_DeactivatedReason
733
734```
735enum OH_AudioSession_DeactivatedReason
736```
737**描述**
738音频会话停用原因。
739
740**起始版本:** 12
741
742| 枚举值 | 描述 | 
743| -------- | -------- |
744| DEACTIVATED_LOWER_PRIORITY  | 应用焦点被抢占。   | 
745| DEACTIVATED_TIMEOUT  | 应用停流后超时。   | 
746
747
748### OH_AudioStream_AudioEffectMode
749
750```
751enum OH_AudioStream_AudioEffectMode
752```
753**描述**
754定义音效模式。
755
756**系统能力:** SystemCapability.Multimedia.Audio.Core
757
758**起始版本:** 12
759
760| 枚举值 | 描述 | 
761| -------- | -------- |
762| EFFECT_NONE  | 无音效模式。   | 
763| EFFECT_DEFAULT  | 默认音效模式。   | 
764
765
766### OH_AudioStream_DeviceChangeReason
767
768```
769enum OH_AudioStream_DeviceChangeReason
770```
771**描述**
772流设备变更原因。
773
774**系统能力:** SystemCapability.Multimedia.Audio.Core
775
776**起始版本:** 11
777
778| 枚举值 | 描述 | 
779| -------- | -------- |
780| REASON_UNKNOWN  | 未知原因。   | 
781| REASON_NEW_DEVICE_AVAILABLE  | 新设备可用。   | 
782| REASON_OLD_DEVICE_UNAVAILABLE  | 旧设备不可用。当报告此原因时,应用程序应考虑暂停音频播放。   | 
783| REASON_OVERRODE  | 用户或系统强制选择切换。   | 
784
785
786### OH_AudioStream_EncodingType
787
788```
789enum OH_AudioStream_EncodingType
790```
791**描述**
792定义音频流编码类型。
793
794**系统能力:** SystemCapability.Multimedia.Audio.Core
795
796**起始版本:** 10
797
798| 枚举值 | 描述 | 
799| -------- | -------- |
800| AUDIOSTREAM_ENCODING_TYPE_RAW  | PCM编码。   | 
801| AUDIOSTREAM_ENCODING_TYPE_AUDIOVIVID  | AudioVivid编码。<br/>**起始版本:** 12 | 
802
803
804### OH_AudioStream_Event
805
806```
807enum OH_AudioStream_Event
808```
809**描述**
810定义音频事件。
811
812通常用来描述音频事件。
813
814**系统能力:** SystemCapability.Multimedia.Audio.Core
815
816**起始版本:** 10
817
818| 枚举值 | 描述 | 
819| -------- | -------- |
820| AUDIOSTREAM_EVENT_ROUTING_CHANGED  | 音频的路由已更改。   | 
821
822
823### OH_AudioStream_LatencyMode
824
825```
826enum OH_AudioStream_LatencyMode
827```
828**描述**
829定义音频时延模式。
830
831**系统能力:** SystemCapability.Multimedia.Audio.Core
832
833**起始版本:** 10
834
835| 枚举值 | 描述 | 
836| -------- | -------- |
837| AUDIOSTREAM_LATENCY_MODE_NORMAL  | 该模式代表一个普通时延的音频流。   | 
838| AUDIOSTREAM_LATENCY_MODE_FAST  | 该模式代表一个低时延的音频流。   | 
839
840
841### OH_AudioStream_PrivacyType
842
843```
844enum OH_AudioStream_PrivacyType
845```
846**描述**
847用于标识对应播放音频流是否支持被其他应用录制。
848
849**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
850
851**起始版本:** 12
852
853| 枚举值 | 描述 | 
854| -------- | -------- |
855| AUDIO_STREAM_PRIVACY_TYPE_PUBLIC  | 表示音频流可以被其他应用录制。   | 
856| AUDIO_STREAM_PRIVACY_TYPE_PRIVATE  | 表示音频流不可以被其他应用录制。   | 
857
858
859### OH_AudioStream_Result
860
861```
862enum OH_AudioStream_Result
863```
864**描述**
865音频错误码。
866
867**系统能力:** SystemCapability.Multimedia.Audio.Core
868
869**起始版本:** 10
870
871| 枚举值 | 描述 | 
872| -------- | -------- |
873| AUDIOSTREAM_SUCCESS  | 操作成功   | 
874| AUDIOSTREAM_ERROR_INVALID_PARAM  | 入参错误。   | 
875| AUDIOSTREAM_ERROR_ILLEGAL_STATE  | 非法状态。   | 
876| AUDIOSTREAM_ERROR_SYSTEM  | 系统通用错误。   | 
877
878
879### OH_AudioStream_SampleFormat
880
881```
882enum OH_AudioStream_SampleFormat
883```
884**描述**
885定义音频流采样格式。
886
887**系统能力:** SystemCapability.Multimedia.Audio.Core
888
889**起始版本:** 10
890
891| 枚举值 | 描述 | 
892| -------- | -------- |
893| AUDIOSTREAM_SAMPLE_U8  | Unsigned 8位。   | 
894| AUDIOSTREAM_SAMPLE_S16LE  | Short 16位小端。   | 
895| AUDIOSTREAM_SAMPLE_S24LE  | Short 24位小端。   | 
896| AUDIOSTREAM_SAMPLE_S32LE  | Short 32位小端。   | 
897
898
899### OH_AudioStream_SourceType
900
901```
902enum OH_AudioStream_SourceType
903```
904**描述**
905定义音频流使用场景。
906
907通常用来描述音频输入流的使用场景。
908
909**系统能力:** SystemCapability.Multimedia.Audio.Core
910
911**起始版本:** 10
912
913| 枚举值 | 描述 | 
914| -------- | -------- |
915| AUDIOSTREAM_SOURCE_TYPE_INVALID  | 不合法状态。   | 
916| AUDIOSTREAM_SOURCE_TYPE_MIC  | 录音。   | 
917| AUDIOSTREAM_SOURCE_TYPE_VOICE_RECOGNITION  | 语音识别。   | 
918| AUDIOSTREAM_SOURCE_TYPE_PLAYBACK_CAPTURE  | 播放录音。   | 
919| AUDIOSTREAM_SOURCE_TYPE_VOICE_COMMUNICATION  | 通话。   | 
920
921
922### OH_AudioStream_State
923
924```
925enum OH_AudioStream_State
926```
927**描述**
928定义音频流的状态。
929
930**系统能力:** SystemCapability.Multimedia.Audio.Core
931
932**起始版本:** 10
933
934| 枚举值 | 描述 | 
935| -------- | -------- |
936| AUDIOSTREAM_STATE_INVALID  | 不合法的状态。   | 
937| AUDIOSTREAM_STATE_NEW  | 新创建时的状态。   | 
938| AUDIOSTREAM_STATE_PREPARED  | 准备状态。   | 
939| AUDIOSTREAM_STATE_RUNNING  | 工作状态。   | 
940| AUDIOSTREAM_STATE_STOPPED  | 停止状态。   | 
941| AUDIOSTREAM_STATE_RELEASED  | 释放状态。   | 
942| AUDIOSTREAM_STATE_PAUSED  | 暂停状态。   | 
943
944
945### OH_AudioStream_Type
946
947```
948enum OH_AudioStream_Type
949```
950**描述**
951音频流类型。
952
953**系统能力:** SystemCapability.Multimedia.Audio.Core
954
955**起始版本:** 10
956
957| 枚举值 | 描述 | 
958| -------- | -------- |
959| AUDIOSTREAM_TYPE_RENDERER  | 该类型代表音频流是输出流。   | 
960| AUDIOSTREAM_TYPE_CAPTURER  | 该类型代表音频流是输入流。   | 
961
962
963### OH_AudioStream_Usage
964
965```
966enum OH_AudioStream_Usage
967```
968**描述**
969定义音频流使用场景。
970
971通常用来描述音频输出流的使用场景。
972
973**系统能力:** SystemCapability.Multimedia.Audio.Core
974
975**起始版本:** 10
976
977| 枚举值 | 描述 | 
978| -------- | -------- |
979| AUDIOSTREAM_USAGE_UNKNOWN  | 未知类型。   | 
980| AUDIOSTREAM_USAGE_MUSIC  | 音乐。   | 
981| AUDIOSTREAM_USAGE_VOICE_COMMUNICATION  | VoIP语音通话。   | 
982| AUDIOSTREAM_USAGE_VOICE_ASSISTANT  | 语音播报。   | 
983| AUDIOSTREAM_USAGE_ALARM  | 闹钟。   | 
984| AUDIOSTREAM_USAGE_VOICE_MESSAGE  | 语音消息。   | 
985| AUDIOSTREAM_USAGE_RINGTONE  | 铃声。   | 
986| AUDIOSTREAM_USAGE_NOTIFICATION  | 通知。   | 
987| AUDIOSTREAM_USAGE_ACCESSIBILITY  | 无障碍。   | 
988| AUDIOSTREAM_USAGE_MOVIE  | 电影或视频。   | 
989| AUDIOSTREAM_USAGE_GAME  | 游戏。   | 
990| AUDIOSTREAM_USAGE_AUDIOBOOK  | 有声读物(包括听书、相声、评书)、听新闻、播客等。   | 
991| AUDIOSTREAM_USAGE_NAVIGATION  | 导航。   | 
992| AUDIOSTREAM_USAGE_VIDEO_COMMUNICATION | VoIP视频通话。<br>**起始版本:** 12 | 
993
994
995## 函数说明
996
997
998### OH_AudioCapturer_Flush()
999
1000```
1001OH_AudioStream_Result OH_AudioCapturer_Flush(OH_AudioCapturer *capturer)
1002```
1003**描述**
1004丢弃获取的音频数据。
1005
1006**起始版本:** 10
1007
1008**系统能力:** SystemCapability.Multimedia.Audio.Core
1009
1010**参数:**
1011
1012| 名称 | 描述 | 
1013| -------- | -------- |
1014| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1015
1016**返回:**
1017
1018函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1019
1020AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1021
1022AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1023
1024AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1025
1026
1027### OH_AudioCapturer_GetCapturerInfo()
1028
1029```
1030OH_AudioStream_Result OH_AudioCapturer_GetCapturerInfo(OH_AudioCapturer *capturer, OH_AudioStream_SourceType *sourceType)
1031```
1032**描述**
1033查询当前音频流工作场景类型。
1034
1035**起始版本:** 10
1036
1037**系统能力:** SystemCapability.Multimedia.Audio.Core
1038
1039**参数:**
1040
1041| 名称 | 描述 | 
1042| -------- | -------- |
1043| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1044| sourceType | 指向一个用来接收输入类型音频流的工作场景的变量。 | 
1045
1046**返回:**
1047
1048函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1049
1050AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1051
1052AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1053
1054
1055### OH_AudioCapturer_GetChannelCount()
1056
1057```
1058OH_AudioStream_Result OH_AudioCapturer_GetChannelCount(OH_AudioCapturer *capturer, int32_t *channelCount)
1059```
1060**描述**
1061查询当前音频流通道数。
1062
1063**起始版本:** 10
1064
1065**系统能力:** SystemCapability.Multimedia.Audio.Core
1066
1067**参数:**
1068
1069| 名称 | 描述 | 
1070| -------- | -------- |
1071| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1072| channelCount | 指向一个用来接收音频流通道数的变量。 | 
1073
1074**返回:**
1075
1076函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1077
1078AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1079
1080AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1081
1082
1083### OH_AudioCapturer_GetCurrentState()
1084
1085```
1086OH_AudioStream_Result OH_AudioCapturer_GetCurrentState(OH_AudioCapturer *capturer, OH_AudioStream_State *state)
1087```
1088**描述**
1089查询当前音频流状态。
1090
1091**起始版本:** 10
1092
1093**系统能力:** SystemCapability.Multimedia.Audio.Core
1094
1095**参数:**
1096
1097| 名称 | 描述 | 
1098| -------- | -------- |
1099| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1100| state | 指向一个用来接收音频流状态的变量。 | 
1101
1102**返回:**
1103
1104函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1105
1106AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1107
1108AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1109
1110
1111### OH_AudioCapturer_GetEncodingType()
1112
1113```
1114OH_AudioStream_Result OH_AudioCapturer_GetEncodingType(OH_AudioCapturer *capturer, OH_AudioStream_EncodingType *encodingType)
1115```
1116**描述**
1117查询当前音频流编码类型。
1118
1119**起始版本:** 10
1120
1121**系统能力:** SystemCapability.Multimedia.Audio.Core
1122
1123**参数:**
1124
1125| 名称 | 描述 | 
1126| -------- | -------- |
1127| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1128| encodingType | 指向一个用来接收音频流编码类型的变量。 | 
1129
1130**返回:**
1131
1132函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1133
1134AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1135
1136AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1137
1138
1139### OH_AudioCapturer_GetFrameSizeInCallback()
1140
1141```
1142OH_AudioStream_Result OH_AudioCapturer_GetFrameSizeInCallback(OH_AudioCapturer *capturer, int32_t *frameSize)
1143```
1144**描述**
1145在回调中查询帧大小,它是每次回调返回的缓冲区的固定长度。
1146
1147**起始版本:** 10
1148
1149**系统能力:** SystemCapability.Multimedia.Audio.Core
1150
1151**参数:**
1152
1153| 名称 | 描述 | 
1154| -------- | -------- |
1155| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1156| frameSize | 指向将为帧大小设置的变量的指针。 | 
1157
1158**返回:**
1159
1160函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1161
1162AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1163
1164AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1165
1166AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1167
1168
1169### OH_AudioCapturer_GetFramesRead()
1170
1171```
1172OH_AudioStream_Result OH_AudioCapturer_GetFramesRead (OH_AudioCapturer *capturer, int64_t *frames)
1173```
1174**描述**
1175查询自创建流以来已读取的帧数。
1176
1177**起始版本:** 10
1178
1179**系统能力:** SystemCapability.Multimedia.Audio.Core
1180
1181**参数:**
1182
1183| 名称 | 描述 | 
1184| -------- | -------- |
1185| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1186| frames | 指向将为帧计数设置的变量的指针。 | 
1187
1188**返回:**
1189
1190函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1191
1192AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1193
1194AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1195
1196
1197### OH_AudioCapturer_GetLatencyMode()
1198
1199```
1200OH_AudioStream_Result OH_AudioCapturer_GetLatencyMode(OH_AudioCapturer *capturer, OH_AudioStream_LatencyMode *latencyMode)
1201```
1202**描述**
1203查询当前音频流时延模式。
1204
1205**起始版本:** 10
1206
1207**系统能力:** SystemCapability.Multimedia.Audio.Core
1208
1209**参数:**
1210
1211| 名称 | 描述 | 
1212| -------- | -------- |
1213| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1214| latencyMode | 指向一个用来接收音频流时延模式的变量。 | 
1215
1216**返回:**
1217
1218函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1219
1220AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1221
1222AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1223
1224
1225### OH_AudioCapturer_GetOverflowCount()
1226
1227```
1228OH_AudioStream_Result OH_AudioCapturer_GetOverflowCount (OH_AudioCapturer *capturer, uint32_t *count)
1229```
1230**描述**
1231查询当前录制音频流过载数。
1232
1233**起始版本:** 12
1234
1235**参数:**
1236
1237| 名称 | 描述 | 
1238| -------- | -------- |
1239| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。  | 
1240| count | 指向一个用来接收音频流过载数的变量的指针。  | 
1241
1242**返回:**
1243
1244函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1245
1246AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1247
1248AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1249
1250
1251### OH_AudioCapturer_GetSampleFormat()
1252
1253```
1254OH_AudioStream_Result OH_AudioCapturer_GetSampleFormat(OH_AudioCapturer *capturer, OH_AudioStream_SampleFormat *sampleFormat)
1255```
1256**描述**
1257查询当前输入音频流采样格式。
1258
1259**起始版本:** 10
1260
1261**系统能力:** SystemCapability.Multimedia.Audio.Core
1262
1263**参数:**
1264
1265| 名称 | 描述 | 
1266| -------- | -------- |
1267| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1268| sampleFormat | 指向一个用来接收音频流采样格式的变量。 | 
1269
1270**返回:**
1271
1272函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1273
1274AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1275
1276AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1277
1278
1279### OH_AudioCapturer_GetSamplingRate()
1280
1281```
1282OH_AudioStream_Result OH_AudioCapturer_GetSamplingRate(OH_AudioCapturer *capturer, int32_t *rate)
1283```
1284**描述**
1285查询当前输入音频流采样率。
1286
1287**起始版本:** 10
1288
1289**系统能力:** SystemCapability.Multimedia.Audio.Core
1290
1291**参数:**
1292
1293| 名称 | 描述 | 
1294| -------- | -------- |
1295| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1296| rate | 指向一个用来接收音频流采样率的变量。 | 
1297
1298**返回:**
1299
1300函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1301
1302AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1303
1304AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1305
1306
1307### OH_AudioCapturer_GetStreamId()
1308
1309```
1310OH_AudioStream_Result OH_AudioCapturer_GetStreamId(OH_AudioCapturer *capturer, uint32_t *streamId)
1311```
1312**描述**
1313查询当前输入音频流ID。
1314
1315**起始版本:** 10
1316
1317**系统能力:** SystemCapability.Multimedia.Audio.Core
1318
1319**参数:**
1320
1321| 名称 | 描述 | 
1322| -------- | -------- |
1323| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1324| streamId | 指向一个用来接收音频流ID的变量。 | 
1325
1326**返回:**
1327
1328函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1329
1330AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1331
1332AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1333
1334
1335### OH_AudioCapturer_GetTimestamp()
1336
1337```
1338OH_AudioStream_Result OH_AudioCapturer_GetTimestamp(OH_AudioCapturer *capturer, clockid_t clockId, int64_t *framePosition, int64_t *timestamp)
1339```
1340**描述**
1341获取输入音频流时间戳和位置信息。
1342
1343该接口可以获取到音频通道实际录制位置(framePosition)以及录制到该位置时候的时间戳(timestamp),时间戳单位为纳秒。
1344
1345**起始版本:** 10
1346
1347**系统能力:** SystemCapability.Multimedia.Audio.Core
1348
1349**参数:**
1350
1351| 名称 | 描述 | 
1352| -------- | -------- |
1353| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1354| clockId | 时钟标识符,使用CLOCK_MONOTONIC。 | 
1355| framePosition | 指向要接收位置的变量的指针。 | 
1356| timestamp | 指向接收时间戳的变量的指针。 | 
1357
1358**返回:**
1359
1360函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1361
1362AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1363
1364AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
1365
1366  1. 参数capturer为nullptr;
1367  2. 参数clockId无效。
1368
1369AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1370
1371
1372### OH_AudioCapturer_Pause()
1373
1374```
1375OH_AudioStream_Result OH_AudioCapturer_Pause(OH_AudioCapturer *capturer)
1376```
1377**描述**
1378暂停输入音频流。
1379
1380**起始版本:** 10
1381
1382**系统能力:** SystemCapability.Multimedia.Audio.Core
1383
1384**参数:**
1385
1386| 名称 | 描述 | 
1387| -------- | -------- |
1388| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1389
1390**需要权限:**
1391
1392ohos.permission.MICROPHONE
1393
1394**返回:**
1395
1396函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1397
1398AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1399
1400AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1401
1402AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1403
1404
1405### OH_AudioCapturer_Release()
1406
1407```
1408OH_AudioStream_Result OH_AudioCapturer_Release(OH_AudioCapturer *capturer)
1409```
1410**描述**
1411释放输入音频流。
1412
1413**起始版本:** 10
1414
1415**系统能力:** SystemCapability.Multimedia.Audio.Core
1416
1417**参数:**
1418
1419| 名称 | 描述 | 
1420| -------- | -------- |
1421| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1422
1423**需要权限:**
1424
1425ohos.permission.MICROPHONE
1426
1427**返回:**
1428
1429函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1430
1431AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1432
1433AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1434
1435AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1436
1437
1438### OH_AudioCapturer_Start()
1439
1440```
1441OH_AudioStream_Result OH_AudioCapturer_Start(OH_AudioCapturer *capturer)
1442```
1443**描述**
1444开始获取音频数据。
1445
1446**起始版本:** 10
1447
1448**系统能力:** SystemCapability.Multimedia.Audio.Core
1449
1450**参数:**
1451
1452| 名称 | 描述 | 
1453| -------- | -------- |
1454| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1455
1456**需要权限:**
1457
1458ohos.permission.MICROPHONE
1459
1460**返回:**
1461
1462函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1463
1464AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1465
1466AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1467
1468AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1469
1470
1471### OH_AudioCapturer_Stop()
1472
1473```
1474OH_AudioStream_Result OH_AudioCapturer_Stop(OH_AudioCapturer *capturer)
1475```
1476**描述**
1477停止输入音频流。
1478
1479**起始版本:** 10
1480
1481**系统能力:** SystemCapability.Multimedia.Audio.Core
1482
1483**参数:**
1484
1485| 名称 | 描述 | 
1486| -------- | -------- |
1487| capturer | 指向[OH_AudioStreamBuilder_GenerateCapturer](#oh_audiostreambuilder_generatecapturer)创建的音频流实例。 | 
1488
1489**需要权限:**
1490
1491ohos.permission.MICROPHONE
1492
1493**返回:**
1494
1495函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1496
1497AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1498
1499AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数capturer为nullptr。
1500
1501AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1502
1503
1504### OH_AudioDeviceDescriptor_GetDeviceAddress()
1505
1506```
1507OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceAddress (OH_AudioDeviceDescriptor *audioDeviceDescriptor, char **address)
1508```
1509**描述**
1510查询目标音频设备描述符的设备地址。
1511
1512**起始版本:** 12
1513
1514**参数:**
1515
1516| 名称 | 描述 | 
1517| -------- | -------- |
1518| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1519| address | 设备MAC地址指针,将设置设备MAC地址值的变量。 不要单独释放音频设备MAC地址指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1520
1521**返回:**
1522
1523AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1524
1525
1526### OH_AudioDeviceDescriptor_GetDeviceChannelCounts()
1527
1528```
1529OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceChannelCounts (OH_AudioDeviceDescriptor *audioDeviceDescriptor, uint32_t **channelCounts, uint32_t *size)
1530```
1531**描述**
1532查询目标音频设备描述符的设备通道计数数组。
1533
1534**起始版本:** 12
1535
1536**参数:**
1537
1538| 名称 | 描述 | 
1539| -------- | -------- |
1540| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1541| channelCounts | 数组指针变量,该变量将设置通道计数数组值。 不要单独释放音频设备通道数指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1542| size | 设置通道计数大小值的指针变量。 | 
1543
1544**返回:**
1545
1546AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1547
1548
1549### OH_AudioDeviceDescriptor_GetDeviceDisplayName()
1550
1551```
1552OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceDisplayName (OH_AudioDeviceDescriptor *audioDeviceDescriptor, char **displayName)
1553```
1554**描述**
1555查询目标音频设备描述符的显示名称。
1556
1557**起始版本:** 12
1558
1559**参数:**
1560
1561| 名称 | 描述 | 
1562| -------- | -------- |
1563| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1564| displayName | 设置显示名称值的指针变量。 不要单独释放音频设备显示名称指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1565
1566**返回:**
1567
1568AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1569
1570
1571### OH_AudioDeviceDescriptor_GetDeviceEncodingTypes()
1572
1573```
1574OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceEncodingTypes (OH_AudioDeviceDescriptor *audioDeviceDescriptor, OH_AudioStream_EncodingType **encodingTypes, uint32_t *size)
1575```
1576**描述**
1577查询目标音频设备描述符的编码类型数组。
1578
1579**起始版本:** 12
1580
1581**参数:**
1582
1583| 名称 | 描述 | 
1584| -------- | -------- |
1585| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1586| encodingTypes | 音频设备编码类型。 [OH_AudioStream_EncodingType](#oh_audiostream_encodingtype) 不要单独释放音频设备编码类型指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1587| size | 设置编码类型大小值的指针变量。 | 
1588
1589**返回:**
1590
1591AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1592
1593
1594### OH_AudioDeviceDescriptor_GetDeviceId()
1595
1596```
1597OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceId (OH_AudioDeviceDescriptor *audioDeviceDescriptor, uint32_t *id)
1598```
1599**描述**
1600查询目标音频设备描述符的设备id。
1601
1602**起始版本:** 12
1603
1604**参数:**
1605
1606| 名称 | 描述 | 
1607| -------- | -------- |
1608| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1609| id | 设备id指针,将设置设备角色值的变量。 | 
1610
1611**返回:**
1612
1613AUDIODEVICE_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1614
1615
1616### OH_AudioDeviceDescriptor_GetDeviceName()
1617
1618```
1619OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceName (OH_AudioDeviceDescriptor *audioDeviceDescriptor, char **name )
1620```
1621**描述**
1622查询目标音频设备描述符的设备名称。
1623
1624**起始版本:** 12
1625
1626**参数:**
1627
1628| 名称 | 描述 | 
1629| -------- | -------- |
1630| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1631| name | 设备名称指针,将设置设备名称值的变量。 不要单独释放音频设备名称指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1632
1633**返回:**
1634
1635AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1636
1637
1638### OH_AudioDeviceDescriptor_GetDeviceRole()
1639
1640```
1641OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceRole (OH_AudioDeviceDescriptor *audioDeviceDescriptor, OH_AudioDevice_Role *deviceRole)
1642```
1643**描述**
1644查询目标音频设备描述符的设备角色。
1645
1646**起始版本:** 12
1647
1648**参数:**
1649
1650| 名称 | 描述 | 
1651| -------- | -------- |
1652| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1653| deviceRole | 设备角色指针。 [OH_AudioDevice_Role](#oh_audiodevice_role) 将设置设备角色值的变量。 | 
1654
1655**返回:**
1656
1657AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1658
1659
1660### OH_AudioDeviceDescriptor_GetDeviceSampleRates()
1661
1662```
1663OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceSampleRates (OH_AudioDeviceDescriptor *audioDeviceDescriptor, uint32_t **sampleRates, uint32_t *size)
1664```
1665**描述**
1666查询目标音频设备描述符的采样率数组。
1667
1668**起始版本:** 12
1669
1670**参数:**
1671
1672| 名称 | 描述 | 
1673| -------- | -------- |
1674| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1675| sampleRates | 设置采样率数组值的数组指针变量。 不要单独释放音频设备采样率指针,而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices),以便在不再使用时释放所有DeviceDescriptor数组。 | 
1676| size | 设置采样率大小值的指针变量。 | 
1677
1678**返回:**
1679
1680AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1681
1682
1683### OH_AudioDeviceDescriptor_GetDeviceType()
1684
1685```
1686OH_AudioCommon_Result OH_AudioDeviceDescriptor_GetDeviceType (OH_AudioDeviceDescriptor *audioDeviceDescriptor, OH_AudioDevice_Type *deviceType)
1687```
1688**描述**
1689查询目标音频设备描述符的设备类型。
1690
1691**起始版本:** 12
1692
1693**参数:**
1694
1695| 名称 | 描述 | 
1696| -------- | -------- |
1697| audioDeviceDescriptor | 音频设备描述符。通过 [OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices) 或者 [OH_AudioRouterManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)获取。 | 
1698| deviceType | 设备类型指针。 [OH_AudioDevice_Type](#oh_audiodevice_type) 将设置设备类型值的变量。  | 
1699
1700**返回:**
1701
1702AUDIOCOMMON_RESULT_SUCCESS 或 AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM
1703
1704
1705### OH_AudioManager_GetAudioRoutingManager()
1706
1707```
1708OH_AudioCommon_Result OH_AudioManager_GetAudioRoutingManager (OH_AudioRoutingManager **audioRoutingManager)
1709```
1710**描述**
1711查询音频路由管理器句柄,该句柄应设置为路由相关函数中的第一个参数。
1712
1713**起始版本:** 12
1714
1715**参数:**
1716
1717| 名称 | 描述 | 
1718| -------- | -------- |
1719| audioRoutingManager | 音频路由管理器句柄[OH_AudioRoutingManager](#oh_audioroutingmanager)。 通过[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)获取句柄。 | 
1720
1721**返回:**
1722
1723函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
1724
1725AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1726
1727
1728### OH_AudioManager_GetAudioSessionManager()
1729
1730```
1731OH_AudioCommon_Result OH_AudioManager_GetAudioSessionManager (OH_AudioSessionManager **audioSessionManager)
1732```
1733**描述**
1734获取音频会话管理器。
1735
1736使用音频会话管理器相关功能,首先需要获取音频会话管理器实例。
1737
1738**起始版本:** 12
1739
1740**参数:**
1741
1742| 名称 | 描述 | 
1743| -------- | -------- |
1744| audioSessionManager | 指向[OH_AudioSessionManager](#oh_audiosessionmanager)音频会话管理器实例。 | 
1745
1746**返回:**
1747
1748函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
1749
1750AUDIOCOMMON_RESULT_SUCCESS 函数执行成功。
1751
1752
1753### OH_AudioRenderer_CancelMark()
1754
1755```
1756OH_AudioStream_Result OH_AudioRenderer_CancelMark (OH_AudioRenderer *renderer)
1757```
1758**描述**
1759取消由[OH_AudioRenderer_SetMarkPosition](#oh_audiorenderer_setmarkposition)设置的标记。
1760
1761**起始版本:** 12
1762
1763**系统能力:** SystemCapability.Multimedia.Audio.Core
1764
1765**参数:**
1766
1767| 名称 | 描述 | 
1768| -------- | -------- |
1769| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1770
1771**返回:**
1772
1773函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1774
1775AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1776
1777AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。
1778
1779
1780### OH_AudioRenderer_Flush()
1781
1782```
1783OH_AudioStream_Result OH_AudioRenderer_Flush(OH_AudioRenderer *renderer)
1784```
1785**描述**
1786丢弃已经写入的音频数据。
1787
1788**起始版本:** 10
1789
1790**系统能力:** SystemCapability.Multimedia.Audio.Core
1791
1792**参数:**
1793
1794| 名称 | 描述 | 
1795| -------- | -------- |
1796| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1797
1798**返回:**
1799
1800函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1801
1802AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1803
1804AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1805
1806AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
1807
1808
1809### OH_AudioRenderer_GetChannelCount()
1810
1811```
1812OH_AudioStream_Result OH_AudioRenderer_GetChannelCount(OH_AudioRenderer *renderer, int32_t *channelCount)
1813```
1814**描述**
1815查询当前输出音频流通道数。
1816
1817**起始版本:** 10
1818
1819**系统能力:** SystemCapability.Multimedia.Audio.Core
1820
1821**参数:**
1822
1823| 名称 | 描述 | 
1824| -------- | -------- |
1825| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1826| channelCount | 指向一个用来接收音频流通道数的变量。  | 
1827
1828**返回:**
1829
1830函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1831
1832AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1833
1834AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1835
1836
1837### OH_AudioRenderer_GetChannelLayout()
1838
1839```
1840OH_AudioStream_Result OH_AudioRenderer_GetChannelLayout (OH_AudioRenderer *renderer, OH_AudioChannelLayout *channelLayout)
1841```
1842**描述**
1843查询当前音频流声道布局。
1844
1845**起始版本:** 12
1846
1847**系统能力:** SystemCapability.Multimedia.Audio.Core
1848
1849**参数:**
1850
1851| 名称 | 描述 | 
1852| -------- | -------- |
1853| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1854| channelLayout | 指向一个用来接收音频流声道布局的变量的指针,具体参考[OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1)。  | 
1855
1856**返回:**
1857
1858函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1859
1860AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1861
1862AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1863
1864
1865### OH_AudioRenderer_GetCurrentState()
1866
1867```
1868OH_AudioStream_Result OH_AudioRenderer_GetCurrentState(OH_AudioRenderer *renderer, OH_AudioStream_State *state)
1869```
1870**描述**
1871查询当前输出音频流状态。
1872
1873**起始版本:** 10
1874
1875**系统能力:** SystemCapability.Multimedia.Audio.Core
1876
1877**参数:**
1878
1879| 名称 | 描述 | 
1880| -------- | -------- |
1881| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1882| state | 指向一个用来接收音频流状态的变量。  | 
1883
1884**返回:**
1885
1886函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1887
1888AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1889
1890AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1891
1892
1893### OH_AudioRenderer_GetEffectMode()
1894
1895```
1896OH_AudioStream_Result OH_AudioRenderer_GetEffectMode (OH_AudioRenderer *renderer, OH_AudioStream_AudioEffectMode *effectMode)
1897```
1898**描述**
1899查询当前音频流音效模式。
1900
1901**起始版本:** 12
1902
1903**系统能力:** SystemCapability.Multimedia.Audio.Core
1904
1905**参数:**
1906
1907| 名称 | 描述 | 
1908| -------- | -------- |
1909| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1910| effectMode | 指向一个用来接收音频流音效模式的变量的指针。  | 
1911
1912**返回:**
1913
1914函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1915
1916AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1917
1918AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1919
1920
1921### OH_AudioRenderer_GetEncodingType()
1922
1923```
1924OH_AudioStream_Result OH_AudioRenderer_GetEncodingType(OH_AudioRenderer *renderer, OH_AudioStream_EncodingType *encodingType)
1925```
1926**描述**
1927查询当前输出音频流编码类型。
1928
1929**起始版本:** 10
1930
1931**系统能力:** SystemCapability.Multimedia.Audio.Core
1932
1933**参数:**
1934
1935| 名称 | 描述 | 
1936| -------- | -------- |
1937| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1938| encodingType | 指向一个用来接收音频流编码类型的变量。  | 
1939
1940**返回:**
1941
1942函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1943
1944AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1945
1946AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1947
1948
1949### OH_AudioRenderer_GetFrameSizeInCallback()
1950
1951```
1952OH_AudioStream_Result OH_AudioRenderer_GetFrameSizeInCallback(OH_AudioRenderer *renderer, int32_t *frameSize)
1953```
1954**描述**
1955在回调中查询帧大小,它是一个固定的长度,每次回调都要填充流。
1956
1957**起始版本:** 10
1958
1959**系统能力:** SystemCapability.Multimedia.Audio.Core
1960
1961**参数:**
1962
1963| 名称 | 描述 | 
1964| -------- | -------- |
1965| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1966| frameSize | 指向将为帧大小设置的变量的指针。  | 
1967
1968**返回:**
1969
1970函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1971
1972AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
1973
1974AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
1975
1976
1977### OH_AudioRenderer_GetFramesWritten()
1978
1979```
1980OH_AudioStream_Result OH_AudioRenderer_GetFramesWritten(OH_AudioRenderer *renderer, int64_t *frames)
1981```
1982**描述**
1983查询自创建流以来已写入的帧数。
1984
1985**起始版本:** 10
1986
1987**系统能力:** SystemCapability.Multimedia.Audio.Core
1988
1989**参数:**
1990
1991| 名称 | 描述 | 
1992| -------- | -------- |
1993| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
1994| frames | 指向将为帧计数设置的变量的指针。  | 
1995
1996**返回:**
1997
1998函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
1999
2000AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2001
2002AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2003
2004
2005### OH_AudioRenderer_GetLatencyMode()
2006
2007```
2008OH_AudioStream_Result OH_AudioRenderer_GetLatencyMode(OH_AudioRenderer *renderer, OH_AudioStream_LatencyMode *latencyMode)
2009```
2010**描述**
2011查询当前输出音频流时延模式。
2012
2013**起始版本:** 10
2014
2015**系统能力:** SystemCapability.Multimedia.Audio.Core
2016
2017**参数:**
2018
2019| 名称 | 描述 | 
2020| -------- | -------- |
2021| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2022| latencyMode | 指向一个用来接收音频流时延模式的变量。  | 
2023
2024**返回:**
2025
2026函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2027
2028AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2029
2030AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2031
2032
2033### OH_AudioRenderer_GetRendererInfo()
2034
2035```
2036OH_AudioStream_Result OH_AudioRenderer_GetRendererInfo(OH_AudioRenderer *renderer, OH_AudioStream_Usage *usage)
2037```
2038**描述**
2039查询当前输出音频流工作场景类型。
2040
2041**起始版本:** 10
2042
2043**系统能力:** SystemCapability.Multimedia.Audio.Core
2044
2045**参数:**
2046
2047| 名称 | 描述 | 
2048| -------- | -------- |
2049| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2050| usage | 指向一个用来接收输出类型音频流的工作场景的变量。  | 
2051
2052**返回:**
2053
2054函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2055
2056AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2057
2058AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2059
2060
2061### OH_AudioRenderer_GetRendererPrivacy()
2062
2063```
2064OH_AudioStream_Result OH_AudioRenderer_GetRendererPrivacy (OH_AudioRenderer *renderer, OH_AudioStream_PrivacyType *privacy)
2065```
2066**描述**
2067查询当前播放音频流是否会被其它应用录制。
2068
2069**起始版本:** 12
2070
2071**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
2072
2073**参数:**
2074
2075| 名称 | 描述 | 
2076| -------- | -------- |
2077| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2078| privacy | 用于返回当前流的内录策略。  | 
2079
2080**返回:**
2081
2082函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2083
2084AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2085
2086AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2087
2088
2089### OH_AudioRenderer_GetSampleFormat()
2090
2091```
2092OH_AudioStream_Result OH_AudioRenderer_GetSampleFormat(OH_AudioRenderer *renderer, OH_AudioStream_SampleFormat *sampleFormat)
2093```
2094**描述**
2095查询当前输出音频流采样格式。
2096
2097**起始版本:** 10
2098
2099**系统能力:** SystemCapability.Multimedia.Audio.Core
2100
2101**参数:**
2102
2103| 名称 | 描述 | 
2104| -------- | -------- |
2105| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2106| sampleFormat | 指向一个用来接收音频流采样格式的变量。  | 
2107
2108**返回:**
2109
2110函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2111
2112AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2113
2114AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2115
2116
2117### OH_AudioRenderer_GetSamplingRate()
2118
2119```
2120OH_AudioStream_Result OH_AudioRenderer_GetSamplingRate(OH_AudioRenderer *renderer, int32_t *rate)
2121```
2122**描述**
2123查询当前输出音频流采样率。
2124
2125**起始版本:** 10
2126
2127**系统能力:** SystemCapability.Multimedia.Audio.Core
2128
2129**参数:**
2130
2131| 名称 | 描述 | 
2132| -------- | -------- |
2133| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2134| rate | 指向一个用来接收音频流采样率的变量。  | 
2135
2136**返回:**
2137
2138函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2139
2140AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2141
2142AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2143
2144
2145### OH_AudioRenderer_GetSilentModeAndMixWithOthers()
2146
2147```
2148OH_AudioStream_Result OH_AudioRenderer_GetSilentModeAndMixWithOthers(OH_AudioRenderer *renderer, bool *on)
2149```
2150**描述**
2151查询当前音频流是否开启静音并发播放。
2152
2153**起始版本:** 12
2154
2155**系统能力:** SystemCapability.Multimedia.Audio.Core
2156
2157**参数:**
2158
2159| 名称 | 描述 | 
2160| -------- | -------- |
2161| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2162| on | 用于返回当前流的静音并发状态。  | 
2163
2164**返回:**
2165
2166函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2167
2168AUDIOSTREAM_SUCCESS 函数执行成功。 
2169
2170AUDIOSTREAM_ERROR_INVALID_PARAM 参数renderer为nullptr。
2171
2172
2173
2174### OH_AudioRenderer_GetSpeed()
2175
2176```
2177OH_AudioStream_Result OH_AudioRenderer_GetSpeed (OH_AudioRenderer * renderer, float * speed )
2178```
2179**描述**
2180获取音频渲染速率。
2181
2182**起始版本:** 11
2183
2184**系统能力:** SystemCapability.Multimedia.Audio.Core
2185
2186**参数:**
2187
2188| 名称 | 描述 | 
2189| -------- | -------- |
2190| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2191| speed | 指向接收播放倍速值的变量的指针。  | 
2192
2193**返回:**
2194
2195函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2196
2197AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2198
2199AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2200
2201
2202### OH_AudioRenderer_GetStreamId()
2203
2204```
2205OH_AudioStream_Result OH_AudioRenderer_GetStreamId(OH_AudioRenderer *renderer, uint32_t *streamId)
2206```
2207**描述**
2208查询当前输出音频流ID。
2209
2210**起始版本:** 10
2211
2212**系统能力:** SystemCapability.Multimedia.Audio.Core
2213
2214**参数:**
2215
2216| 名称 | 描述 | 
2217| -------- | -------- |
2218| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2219| streamId | 指向一个用来接收音频流ID的变量。  | 
2220
2221**返回:**
2222
2223函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2224
2225AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2226
2227AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2228
2229
2230### OH_AudioRenderer_GetTimestamp()
2231
2232```
2233OH_AudioStream_Result OH_AudioRenderer_GetTimestamp(OH_AudioRenderer *renderer, clockid_t clockId, int64_t *framePosition, int64_t *timestamp)
2234```
2235**描述**
2236获取输出音频流时间戳和位置信息。
2237
2238该接口可以获取到音频通道实际播放位置(framePosition)以及播放到该位置时的时间戳(timestamp),时间戳单位为纳秒。
2239
2240该接口一般用来实现音画同步,建议频率不要太频繁,可以每分钟一次,最好不要低200ms一次。频繁调用可能会带来功耗问题,因此在能保证音画同步效果的情况下,不需要频繁的查询时间戳。
2241
2242**起始版本:** 10
2243
2244**系统能力:** SystemCapability.Multimedia.Audio.Core
2245
2246**参数:**
2247
2248| 名称 | 描述 | 
2249| -------- | -------- |
2250| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2251| clockId | 时钟标识符,使用CLOCK_MONOTONIC。  | 
2252| framePosition | 指向要接收位置的变量的指针。  | 
2253| timestamp | 指向接收时间戳的变量的指针。  | 
2254
2255**返回:**
2256
2257函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2258
2259AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2260
2261AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2262
2263  1. 参数renderer为nullptr;
2264  2. 参数clockId无效。
2265
2266AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2267
2268
2269### OH_AudioRenderer_GetUnderflowCount()
2270
2271```
2272OH_AudioStream_Result OH_AudioRenderer_GetUnderflowCount (OH_AudioRenderer *renderer, uint32_t *count)
2273```
2274**描述**
2275查询当前播放音频流欠载数。
2276
2277**起始版本:** 12
2278
2279**参数:**
2280
2281| 名称 | 描述 | 
2282| -------- | -------- |
2283| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2284| count | 指向一个用来接收音频流欠载数的变量的指针。  | 
2285
2286**返回:**
2287
2288函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2289
2290AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2291
2292AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2293
2294  1. 参数renderer为nullptr;
2295  2. 参数count为nullptr。
2296
2297
2298### OH_AudioRenderer_GetVolume()
2299
2300```
2301OH_AudioStream_Result OH_AudioRenderer_GetVolume (OH_AudioRenderer *renderer, float *volume)
2302```
2303**描述**
2304获取当前音频流音量值。
2305
2306**系统能力:** SystemCapability.Multimedia.Audio.Core
2307
2308**起始版本:** 12
2309
2310**参数:**
2311
2312| 名称 | 描述 | 
2313| -------- | -------- |
2314| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2315| volume | 指向一个获取当前音频流音量值的指针。音量值的范围是[0.0, 1.0]。  |
2316
2317**返回:**
2318
2319函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2320
2321AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2322
2323AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2324  
2325  1. 参数renderer为nullptr;
2326  2. 参数volume为nullptr。
2327
2328
2329### OH_AudioRenderer_Pause()
2330
2331```
2332OH_AudioStream_Result OH_AudioRenderer_Pause(OH_AudioRenderer *renderer)
2333```
2334**描述**
2335暂停输出音频流。
2336
2337**起始版本:** 10
2338
2339**系统能力:** SystemCapability.Multimedia.Audio.Core
2340
2341**参数:**
2342
2343| 名称 | 描述 | 
2344| -------- | -------- |
2345| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2346
2347**返回:**
2348
2349函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2350
2351AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2352
2353AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2354
2355AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2356
2357
2358### OH_AudioRenderer_Release()
2359
2360```
2361OH_AudioStream_Result OH_AudioRenderer_Release(OH_AudioRenderer *renderer)
2362```
2363**描述**
2364释放输出音频流。
2365
2366**起始版本:** 10
2367
2368**系统能力:** SystemCapability.Multimedia.Audio.Core
2369
2370**参数:**
2371
2372| 名称 | 描述 | 
2373| -------- | -------- |
2374| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2375
2376**返回:**
2377
2378函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2379
2380AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2381
2382AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2383
2384AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2385
2386
2387### OH_AudioRenderer_SetDefaultOutputDevice()
2388
2389```
2390OH_AudioStream_Result OH_AudioRenderer_SetDefaultOutputDevice (OH_AudioRenderer* renderer, OH_AudioDevice_Type deviceType)
2391```
2392**描述**
2393设置默认本机内置发声设备。
2394
2395本接口仅适用于音频流类型[OH_AudioStream_Usage](#oh_audiostream_usage)为语音消息、VoIP语音通话或者VoIP视频通话的场景使用,以及可选的设备类型为听筒、扬声器和系统默认设备。
2396
2397本接口允许在AudioRenderer创建以后的任何时间被调用,系统会记录应用设置的默认本机内置发声设备。在应用启动播放时,若有外接设备如蓝牙耳机/有线耳机接入,系统优先从外接设备发声;否则系统遵循应用设置的默认本机内置发声设备发声。
2398
2399**起始版本:** 12
2400
2401**系统能力:** SystemCapability.Multimedia.Audio.Core
2402
2403**起始版本:** 12
2404
2405**参数:**
2406
2407| 名称 | 描述 | 
2408| -------- | -------- |
2409| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2410| deviceType | 指向[OH_AudioDevice_Type](#oh_audiodevice_type)用于设置发声设备类型。<br>可设置的设备类型包括: <br>AUDIO_DEVICE_TYPE_EARPIECE: 听筒 <br>AUDIO_DEVICE_TYPE_SPEAKER: 扬声器 <br>AUDIO_DEVICE_TYPE_DEFAULT: 系统默认设备  | 
2411
2412**返回:**
2413
2414函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2415
2416AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2417
2418AUDIOSTREAM_ERROR_INVALID_PARAM:
2419
24201. 参数renderer为nullptr;
24212. 参数deviceType无效。 
2422 
2423AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。 
2424
2425AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。 
2426
2427
2428### OH_AudioRenderer_SetEffectMode()
2429
2430```
2431OH_AudioStream_Result OH_AudioRenderer_SetEffectMode (OH_AudioRenderer *renderer, OH_AudioStream_AudioEffectMode effectMode)
2432```
2433**描述**
2434设置当前音频流音效模式。
2435
2436**起始版本:** 12
2437
2438**系统能力:** SystemCapability.Multimedia.Audio.Core
2439
2440**参数:**
2441
2442| 名称 | 描述 | 
2443| -------- | -------- |
2444| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2445| effectMode | 设置当前音频流的目标音效模式。  | 
2446
2447**返回:**
2448
2449函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2450
2451AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2452
2453AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2454
2455
2456### OH_AudioRenderer_SetMarkPosition()
2457
2458```
2459OH_AudioStream_Result OH_AudioRenderer_SetMarkPosition (OH_AudioRenderer *renderer, uint32_t samplePos, OH_AudioRenderer_OnMarkReachedCallback callback, void *userData)
2460```
2461**描述**
2462在当前渲染器上设置标记位置。调用此函数将覆盖已设置的标记位置。
2463
2464**起始版本:** 12
2465
2466**系统能力:** SystemCapability.Multimedia.Audio.Core
2467
2468**参数:**
2469
2470| 名称 | 描述 | 
2471| -------- | -------- |
2472| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2473| samplePos | 设置目标标记位置。  | 
2474| callback | 当到达目标标记位置时回调[OH_AudioRenderer_OnMarkReachedCallback](#oh_audiorenderer_onmarkreachedcallback)。  | 
2475| userData | 指向通过回调函数传递的应用数据指针。  | 
2476
2477**返回:**
2478
2479函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2480
2481AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2482
2483AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2484
2485  1. 参数renderer为nullptr;
2486  2. 参数samplePos无效。
2487
2488AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2489
2490AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。
2491
2492
2493### OH_AudioRenderer_SetSilentModeAndMixWithOthers()
2494
2495```
2496OH_AudioStream_Result OH_AudioRenderer_SetSilentModeAndMixWithOthers (OH_AudioRenderer *renderer, bool on)
2497```
2498**描述**
2499设置静音并发播放模式。
2500
2501**起始版本:** 12
2502
2503**系统能力:** SystemCapability.Multimedia.Audio.Core
2504
2505**参数:**
2506
2507| 名称 | 描述 | 
2508| -------- | -------- |
2509| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2510| on | 设置当前音频流的静音并发状态。 true: 设置当前播放的音频流静音播放,并且不会打断其它音频流播放。 false: 取消当前播放的音频流静音播放,音频流可根据系统焦点策略抢占焦点。  | 
2511
2512**返回:**
2513
2514函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2515
2516AUDIOSTREAM_SUCCESS:函数执行成功。 
2517
2518AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。
2519
2520
2521### OH_AudioRenderer_SetSpeed()
2522
2523```
2524OH_AudioStream_Result OH_AudioRenderer_SetSpeed (OH_AudioRenderer *renderer, float speed)
2525```
2526**描述**
2527设置音频渲染速率。
2528
2529**起始版本:** 11
2530
2531**系统能力:** SystemCapability.Multimedia.Audio.Core
2532
2533**参数:**
2534
2535| 名称 | 描述 | 
2536| -------- | -------- |
2537| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2538| speed | 设置播放的倍速值(倍速范围:0.25-4.0)。  | 
2539
2540**返回:**
2541
2542函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2543
2544AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2545
2546AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2547
2548
2549### OH_AudioRenderer_SetVolume()
2550
2551```
2552OH_AudioStream_Result OH_AudioRenderer_SetVolume (OH_AudioRenderer *renderer, float volume)
2553```
2554**描述**
2555设置当前音频流音量值。
2556
2557**系统能力:** SystemCapability.Multimedia.Audio.Core
2558
2559**起始版本:** 12
2560
2561**参数:**
2562
2563| 名称 | 描述 | 
2564| -------- | -------- |
2565| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2566| volume | 设置当前音频流音量,音量值的范围是[0.0, 1.0]。  |
2567
2568**返回:**
2569
2570函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2571
2572AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2573
2574AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2575  
2576  1. 参数renderer为nullptr;
2577  2. 参数volume无效。
2578
2579AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2580
2581AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。
2582
2583
2584### OH_AudioRenderer_SetVolumeWithRamp()
2585
2586```
2587OH_AudioStream_Result OH_AudioRenderer_SetVolumeWithRamp (OH_AudioRenderer *renderer, float volume, int32_t durationMs)
2588```
2589**描述**
2590在指定时间范围内使用渐变更改音量。
2591
2592**系统能力:** SystemCapability.Multimedia.Audio.Core
2593
2594**起始版本:** 12
2595
2596**参数:**
2597
2598| 名称 | 描述 | 
2599| -------- | -------- |
2600| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2601| volume | 目标音量值,取值范围[0.0, 1.0]。  | 
2602| durationMs | 音量渐变的持续时间,以毫秒为单位。  | 
2603
2604**返回:**
2605
2606函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2607
2608AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2609
2610AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2611  
2612  1. 参数renderer为nullptr;
2613  2. 参数volume无效。
2614
2615AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2616
2617AUDIOSTREAM_ERROR_SYSTEM:出现系统错误。
2618
2619
2620### OH_AudioRenderer_Start()
2621
2622```
2623OH_AudioStream_Result OH_AudioRenderer_Start(OH_AudioRenderer *renderer)
2624```
2625**描述**
2626开始输出音频数据。
2627
2628**起始版本:** 10
2629
2630**系统能力:** SystemCapability.Multimedia.Audio.Core
2631
2632**参数:**
2633
2634| 名称 | 描述 | 
2635| -------- | -------- |
2636| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2637
2638**返回:**
2639
2640函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2641
2642AUDIOSTREAM_SUCCESS:函数执行成功。 
2643
2644AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。 
2645
2646AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2647
2648
2649### OH_AudioRenderer_Stop()
2650
2651```
2652OH_AudioStream_Result OH_AudioRenderer_Stop(OH_AudioRenderer *renderer)
2653```
2654**描述**
2655停止输出音频流。
2656
2657**起始版本:** 10
2658
2659**系统能力:** SystemCapability.Multimedia.Audio.Core
2660
2661**参数:**
2662
2663| 名称 | 描述 | 
2664| -------- | -------- |
2665| renderer | 指向[OH_AudioStreamBuilder_GenerateRenderer](#oh_audiostreambuilder_generaterenderer)创建的音频流实例。  | 
2666
2667**返回:**
2668
2669函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
2670
2671AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2672
2673AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数renderer为nullptr。
2674
2675AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
2676
2677
2678### OH_AudioRoutingManager_GetAvailableDevices()
2679
2680```
2681OH_AudioCommon_Result OH_AudioRoutingManager_GetAvailableDevices (OH_AudioRoutingManager *audioRoutingManager, OH_AudioDevice_Usage deviceUsage, OH_AudioDeviceDescriptorArray **audioDeviceDescriptorArray)
2682```
2683**描述**
2684获取音频可选设备列表。
2685
2686**起始版本:** 12
2687
2688**参数:**
2689
2690| 名称 | 描述 | 
2691| -------- | -------- |
2692| audioRoutingManager | 指向[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)创建的音频路由管理器实例: [OH_AudioRoutingManager](#oh_audioroutingmanager)。  | 
2693| deviceUsage | 指向[OH_AudioDevice_Usage](#oh_audiodevice_usage)用于设置要获取的设备种类。  | 
2694| audioDeviceDescriptorArray | 音频设备描述符数组。[OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) 设置音频设备描述符值的指针变量,不要单独释放audioDeviceDescriptorArray指针, 而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)来释放DeviceDescriptor数组。| 
2695
2696**返回:**
2697
2698函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2699
2700AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2701
2702AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
27031. 参数audioRoutingManager为nullptr;
27042. 参数deviceUsage无效; 
27053. 参数audioDeviceDescriptorArray为nullptr。
2706 
2707AUDIOCOMMON_RESULT_ERROR_NO_MEMORY:内存不足。
2708
2709
2710### OH_AudioRoutingManager_GetDevices()
2711
2712```
2713OH_AudioCommon_Result OH_AudioRoutingManager_GetDevices (OH_AudioRoutingManager *audioRoutingManager, OH_AudioDevice_Flag deviceFlag, OH_AudioDeviceDescriptorArray **audioDeviceDescriptorArray)
2714```
2715**描述**
2716根据输入的deviceFlag查询可用的设备。
2717
2718**起始版本:** 12
2719
2720**参数:**
2721
2722| 名称 | 描述 | 
2723| -------- | -------- |
2724| audioRoutingManager | 音频路由管理器句柄[OH_AudioRoutingManager](#oh_audioroutingmanager)。通过[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)获取句柄。 | 
2725| deviceFlag | 音频设备标志[OH_AudioDevice_Flag](#oh_audiodevice_flag),用于选择目标设备的滤波器参数。 | 
2726| audioDeviceDescriptorArray | 音频设备描述符数组[OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md)。 设置音频设备描述符值的指针变量,不要单独释放audioDeviceDescriptorArray指针, 而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)来释放DeviceDescriptor数组。|
2727
2728**返回:**
2729
2730函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2731
2732AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2733
2734AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2735
2736  1. 参数audioRoutingManager为nullptr;
2737  2. 参数deviceFlag无效;
2738  3. 参数audioDeviceDescriptorArray为nullptr。
2739
2740AUDIOCOMMON_RESULT_ERROR_NO_MEMORY:内存不足。
2741
2742### OH_AudioRoutingManager_GetPreferredInputDevice()
2743
2744```
2745OH_AudioCommon_Result OH_AudioRoutingManager_GetPreferredInputDevice (OH_AudioRoutingManager *audioRoutingManager, OH_AudioStream_SourceType sourceType, OH_AudioDeviceDescriptorArray **audioDeviceDescriptorArray )
2746```
2747**描述**
2748根据音频输入流的使用场景,获取优先级最高的输入设备。
2749
2750**起始版本:** 12
2751
2752**参数:**
2753
2754| 名称 | 描述 | 
2755| -------- | -------- |
2756| audioRoutingManager | 指向[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)创建的音频路由管理器实例: [OH_AudioRoutingManager](#oh_audioroutingmanager)。  | 
2757| sourceType | 指向[OH_AudioStream_SourceType](#oh_audiostream_sourcetype)用于设置音频输入流的使用场景。  | 
2758| audioDeviceDescriptorArray | 音频设备描述符数组。[OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) 设置音频设备描述符值的指针变量,不要单独释放audioDeviceDescriptorArray指针, 而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)来释放DeviceDescriptor数组。| 
2759
2760**返回:**
2761
2762函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2763
2764AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2765
2766AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2767
27681. 参数audioRoutingManager为nullptr; 
27692. 参数sourceType无效; 
27703. 参数audioDeviceDescriptorArray为nullptr。 
2771
2772AUDIOCOMMON_RESULT_ERROR_NO_MEMORY:内存不足。
2773
2774
2775### OH_AudioRoutingManager_GetPreferredOutputDevice()
2776
2777```
2778OH_AudioCommon_Result OH_AudioRoutingManager_GetPreferredOutputDevice (OH_AudioRoutingManager *audioRoutingManager, OH_AudioStream_Usage streamUsage, OH_AudioDeviceDescriptorArray **audioDeviceDescriptorArray )
2779```
2780**描述**
2781根据音频输出流的使用场景,获取优先级最高的输出设备。
2782
2783**起始版本:** 12
2784
2785**参数:**
2786
2787| 名称 | 描述 | 
2788| -------- | -------- |
2789| audioRoutingManager | 指向[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)创建的音频路由管理器实例: [OH_AudioRoutingManager](#oh_audioroutingmanager)。  | 
2790| streamUsage | 指向[OH_AudioStream_Usage](#oh_audiostream_usage)用于设置音频输出流的使用场景。  | 
2791| audioDeviceDescriptorArray | 音频设备描述符数组。[OH_AudioDeviceDescriptorArray](_o_h___audio_device_descriptor_array.md) 设置音频设备描述符值的指针变量,不要单独释放audioDeviceDescriptorArray指针, 而是调用[OH_AudioRoutingManager_ReleaseDevices](#oh_audioroutingmanager_releasedevices)来释放DeviceDescriptor数组。| 
2792
2793**返回:**
2794
2795函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2796
2797AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2798
2799AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2800
28011. 参数audioRoutingManager为nullptr; 
28022. 参数streamUsage无效; 
28033. 参数audioDeviceDescriptorArray为nullptr。 
2804
2805AUDIOCOMMON_RESULT_ERROR_NO_MEMORY:内存不足。
2806
2807
2808### OH_AudioRoutingManager_RegisterDeviceChangeCallback()
2809
2810```
2811OH_AudioCommon_Result OH_AudioRoutingManager_RegisterDeviceChangeCallback (OH_AudioRoutingManager *audioRoutingManager, OH_AudioDevice_Flag deviceFlag, OH_AudioRoutingManager_OnDeviceChangedCallback callback)
2812```
2813
2814**描述**
2815注册音频路由管理器的设备更改回调。
2816**起始版本:** 12
2817
2818**参数:**
2819
2820| 名称 | 描述 | 
2821| -------- | -------- |
2822| audioRoutingManager | 音频路由管理器句柄[OH_AudioRoutingManager](#oh_audioroutingmanager)。通过[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)获取句柄。 | 
2823| deviceFlag | 音频设备标志[OH_AudioDevice_Flag](#oh_audiodevice_flag),用来注册回调。 | 
2824| callback | 函数指针将指向用于返回更改的音频设备描述符的回调函数[OH_AudioRoutingManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)。 | 
2825
2826**返回:**
2827
2828函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2829
2830AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2831
2832AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2833
2834  1. 参数audioRoutingManager为nullptr;
2835  2. 参数deviceFlag无效;
2836  3. 参数callback为nullptr。
2837
2838
2839### OH_AudioRoutingManager_ReleaseDevices()
2840
2841```
2842OH_AudioCommon_Result OH_AudioRoutingManager_ReleaseDevices (OH_AudioRoutingManager *audioRoutingManager, OH_AudioDeviceDescriptorArray *audioDeviceDescriptorArray)
2843```
2844**描述**
2845释放音频设备描述符数组对象。
2846
2847**起始版本:** 12
2848
2849**参数:**
2850
2851| 名称 | 描述 | 
2852| -------- | -------- |
2853| audioRoutingManager | 音频路由管理器句柄[OH_AudioRoutingManager](#oh_audioroutingmanager)。通过[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)获取句柄。 | 
2854| audioDeviceDescriptorArray | 音频设备描述符数组应当被释放,调用[OH_AudioRoutingManager_GetDevices](#oh_audioroutingmanager_getdevices)获取。 | 
2855
2856**返回:**
2857
2858函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2859
2860AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2861
2862AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2863
2864  1. 参数audioRoutingManager为nullptr;
2865  2. 参数audioDeviceDescriptorArray为nullptr。
2866
2867
2868### OH_AudioRoutingManager_UnregisterDeviceChangeCallback()
2869
2870```
2871OH_AudioCommon_Result OH_AudioRoutingManager_UnregisterDeviceChangeCallback (OH_AudioRoutingManager *audioRoutingManager, OH_AudioRoutingManager_OnDeviceChangedCallback callback)
2872```
2873**描述**
2874取消注册音频路由管理器的设备更改回调。
2875
2876**起始版本:** 12
2877
2878**参数:**
2879
2880| 名称 | 描述 | 
2881| -------- | -------- |
2882| audioRoutingManager | 音频路由管理器句柄[OH_AudioRoutingManager](#oh_audioroutingmanager)。通过[OH_AudioManager_GetAudioRoutingManager](#oh_audiomanager_getaudioroutingmanager)获取句柄。 | 
2883| callback | 函数指针将指向用于返回更改的音频设备描述符的回调函数[OH_AudioRoutingManager_OnDeviceChangedCallback](#oh_audioroutingmanager_ondevicechangedcallback)。 | 
2884
2885**返回:**
2886
2887函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2888
2889AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
2890
2891AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2892
2893  1. 参数audioRoutingManager为nullptr;
2894  2. 参数callback为nullptr。
2895
2896
2897### OH_AudioSessionManager_ActivateAudioSession()
2898
2899```
2900OH_AudioCommon_Result OH_AudioSessionManager_ActivateAudioSession (OH_AudioSessionManager *audioSessionManager, const OH_AudioSession_Strategy *strategy )
2901```
2902**描述**
2903激活音频会话。
2904
2905**起始版本:** 12
2906
2907**参数:**
2908
2909| 名称 | 描述 | 
2910| -------- | -------- |
2911| audioSessionManager | 指向[OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)创建的音频会话管理实例:[OH_AudioSessionManager](#oh_audiosessionmanager)。  | 
2912| strategy | 指向[OH_AudioSession_Strategy](_o_h___audio_session___strategy.md)用于设置音频会话策略。  | 
2913
2914**返回:**
2915
2916函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2917
2918AUDIOCOMMON_RESULT_SUCCESS 函数执行成功。 
2919
2920AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2921
29221. 参数audioSessionManager为nullptr;
29232. 参数strategy无效。 AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE 非法状态。 
2924
2925
2926### OH_AudioSessionManager_DeactivateAudioSession()
2927
2928```
2929OH_AudioCommon_Result OH_AudioSessionManager_DeactivateAudioSession (OH_AudioSessionManager *audioSessionManager)
2930```
2931**描述**
2932停用音频会话。
2933
2934**起始版本:** 12
2935
2936**参数:**
2937
2938| 名称 | 描述 | 
2939| -------- | -------- |
2940| audioSessionManager | 指向[OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)创建的音频会话管理实例:[OH_AudioSessionManager](#oh_audiosessionmanager)。  | 
2941
2942**返回:**
2943
2944函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2945
2946AUDIOCOMMON_RESULT_SUCCESS 函数执行成功。
2947
2948AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数audioSessionManager为nullptr。 
2949
2950AUDIOCOMMON_RESULT_ERROR_ILLEGAL_STATE 非法状态。
2951
2952
2953### OH_AudioSessionManager_IsAudioSessionActivated()
2954
2955```
2956bool OH_AudioSessionManager_IsAudioSessionActivated (OH_AudioSessionManager *audioSessionManager)
2957```
2958**描述**
2959检查音频会话是否已激活。
2960
2961**起始版本:** 12
2962
2963**参数:**
2964
2965| 名称 | 描述 | 
2966| -------- | -------- |
2967| audioSessionManager | 指向[OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)创建的音频会话管理实例:[OH_AudioSessionManager](#oh_audiosessionmanager)。  | 
2968
2969**返回:**
2970
2971用于返回当前应用的音频会话是否已激活,true表示已激活,false表示已停用。
2972
2973
2974### OH_AudioSessionManager_RegisterSessionDeactivatedCallback()
2975
2976```
2977OH_AudioCommon_Result OH_AudioSessionManager_RegisterSessionDeactivatedCallback (OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)
2978```
2979**描述**
2980注册音频会话停用事件回调。
2981
2982**起始版本:** 12
2983
2984**参数:**
2985
2986| 名称 | 描述 | 
2987| -------- | -------- |
2988| audioSessionManager | 指向[OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)创建的音频会话管理实例 [OH_AudioSessionManager](#oh_audiosessionmanager)。  | 
2989| callback | 指向[OH_AudioSessionDeactivatedCallback](#oh_audiosession_deactivatedcallback),用于接收音频会话已停用事件。  | 
2990
2991**返回:**
2992
2993函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
2994
2995AUDIOCOMMON_RESULT_SUCCESS 函数执行成功。 
2996
2997AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
2998
29991. 参数audioSessionManager为nullptr;
30002. 参数callback为nullptr。 
3001
3002
3003### OH_AudioSessionManager_UnregisterSessionDeactivatedCallback()
3004
3005```
3006OH_AudioCommon_Result OH_AudioSessionManager_UnregisterSessionDeactivatedCallback (OH_AudioSessionManager *audioSessionManager, OH_AudioSession_DeactivatedCallback callback)
3007```
3008**描述**
3009取消注册音频会话停用事件回调。
3010
3011**起始版本:** 12
3012
3013**参数:**
3014
3015| 名称 | 描述 | 
3016| -------- | -------- |
3017| audioSessionManager | 指向[OH_AudioManager_GetAudioSessionManager](#oh_audiomanager_getaudiosessionmanager)创建的音频会话管理实例 [OH_AudioSessionManager](#oh_audiosessionmanager)。  | 
3018| callback | 指向[OH_AudioSessionDeactivatedCallback](#oh_audiosession_deactivatedcallback),用于接收音频会话已停用事件。  | 
3019
3020**返回:**
3021
3022函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
3023
3024AUDIOCOMMON_RESULT_SUCCESS 函数执行成功。 
3025
3026AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
3027
30281. 参数audioSessionManager为nullptr;
30292. 参数callback为nullptr。 
3030
3031
3032### OH_AudioStreamBuilder_Create()
3033
3034```
3035OH_AudioStream_Result OH_AudioStreamBuilder_Create(OH_AudioStreamBuilder **builder, OH_AudioStream_Type type)
3036```
3037**描述**
3038创建一个输入或者输出类型的音频流构造器。
3039
3040当构造器不再使用时,需要调用OH_AudioStreamBuilder_Destroy()销毁它。
3041
3042**起始版本:** 10
3043
3044**系统能力:** SystemCapability.Multimedia.Audio.Core
3045
3046**参数:**
3047
3048| 名称 | 描述 | 
3049| -------- | -------- |
3050| builder | 该引用指向创建的构造器的结果。  | 
3051| type | 构造器的流类型。AUDIOSTREAM_TYPE_RENDERER or AUDIOSTREAM_TYPE_CAPTURER | 
3052
3053**返回:**
3054
3055函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3056
3057AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3058
3059
3060### OH_AudioStreamBuilder_Destroy()
3061
3062```
3063OH_AudioStream_Result OH_AudioStreamBuilder_Destroy(OH_AudioStreamBuilder *builder)
3064```
3065**描述**
3066销毁一个音频流构造器。
3067
3068当构造器不再使用时,需要调用该函数销毁它。
3069
3070**起始版本:** 10
3071
3072**系统能力:** SystemCapability.Multimedia.Audio.Core
3073
3074**参数:**
3075
3076| 名称 | 描述 | 
3077| -------- | -------- |
3078| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3079
3080**返回:**
3081
3082函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3083
3084AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3085
3086AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3087
3088AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常。
3089
3090
3091### OH_AudioStreamBuilder_GenerateCapturer()
3092
3093```
3094OH_AudioStream_Result OH_AudioStreamBuilder_GenerateCapturer(OH_AudioStreamBuilder *builder, OH_AudioCapturer **audioCapturer)
3095```
3096**描述**
3097创建输入音频流实例。
3098
3099**起始版本:** 10
3100
3101**系统能力:** SystemCapability.Multimedia.Audio.Core
3102
3103**参数:**
3104
3105| 名称 | 描述 | 
3106| -------- | -------- |
3107| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3108| audioCapturer | 指向输入音频流实例的指针,将被用来接收函数创建的结果。  | 
3109
3110**需要权限:**
3111
3112ohos.permission.MICROPHONE
3113
3114**返回:**
3115
3116函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3117
3118AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3119
3120AUDIOSTREAM_ERROR_INVALID_PARAM:
3121
3122  1. 参数builder为nullptr;
3123  2. StreamType无效;
3124  3. 创建OHAudioRenderer失败。
3125
3126
3127### OH_AudioStreamBuilder_GenerateRenderer()
3128
3129```
3130OH_AudioStream_Result OH_AudioStreamBuilder_GenerateRenderer(OH_AudioStreamBuilder *builder, OH_AudioRenderer **audioRenderer)
3131```
3132**描述**
3133创建输出音频流实例。
3134
3135**起始版本:** 10
3136
3137**系统能力:** SystemCapability.Multimedia.Audio.Core
3138
3139**参数:**
3140
3141| 名称 | 描述 | 
3142| -------- | -------- |
3143| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3144| audioRenderer | 指向输出音频流实例的指针,将被用来接收函数创建的结果。  | 
3145
3146**返回:**
3147
3148函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3149
3150AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3151
3152AUDIOSTREAM_ERROR_INVALID_PARAM:
3153
3154  1. 参数builder为nullptr;
3155  2. StreamType无效;
3156  3. 创建OHAudioRenderer失败。
3157
3158
3159### OH_AudioStreamBuilder_SetCapturerCallback()
3160
3161```
3162OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerCallback(OH_AudioStreamBuilder *builder, OH_AudioCapturer_Callbacks callbacks, void *userData)
3163```
3164**描述**
3165设置输入音频流的回调。
3166
3167**起始版本:** 10
3168
3169**系统能力:** SystemCapability.Multimedia.Audio.Core
3170
3171**参数:**
3172
3173| 名称 | 描述 | 
3174| -------- | -------- |
3175| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3176| callbacks | 将被用来处理输入音频流相关事件的回调函数。  | 
3177| userData | 指向通过回调函数传递的应用数据指针。  | 
3178
3179**返回:**
3180
3181函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3182
3183AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3184
3185AUDIOSTREAM_ERROR_INVALID_PARAM:
3186
3187  1. 参数builder为nullptr;
3188  2. StreamType无效。
3189
3190
3191### OH_AudioStreamBuilder_SetCapturerInfo()
3192
3193```
3194OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerInfo(OH_AudioStreamBuilder *builder, OH_AudioStream_SourceType sourceType)
3195```
3196**描述**
3197设置输入音频流的工作场景。
3198
3199**起始版本:** 10
3200
3201**系统能力:** SystemCapability.Multimedia.Audio.Core
3202
3203**参数:**
3204
3205| 名称 | 描述 | 
3206| -------- | -------- |
3207| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3208| sourceType | 输入音频流属性,使用的工作场景。  | 
3209
3210**返回:**
3211
3212函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3213
3214AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3215
3216AUDIOSTREAM_ERROR_INVALID_PARAM:
3217
3218  1. 参数builder为nullptr;
3219  2. 参数sourceType无效。
3220
3221
3222### OH_AudioStreamBuilder_SetChannelCount()
3223
3224```
3225OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelCount(OH_AudioStreamBuilder *builder, int32_t channelCount)
3226```
3227**描述**
3228设置音频流的通道数属性。
3229
3230**起始版本:** 10
3231
3232**系统能力:** SystemCapability.Multimedia.Audio.Core
3233
3234**参数:**
3235
3236| 名称 | 描述 | 
3237| -------- | -------- |
3238| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3239| channelCount | 音频流通道数。  | 
3240
3241**返回:**
3242
3243函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3244
3245AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3246
3247AUDIOSTREAM_ERROR_INVALID_PARAM:
3248
3249  1. 参数builder为nullptr;
3250  2. 参数channelCount无效。
3251
3252
3253### OH_AudioStreamBuilder_SetChannelLayout()
3254
3255```
3256OH_AudioStream_Result OH_AudioStreamBuilder_SetChannelLayout (OH_AudioStreamBuilder *builder, OH_AudioChannelLayout channelLayout)
3257```
3258**描述**
3259设置音频流的声道布局。
3260
3261**起始版本:** 12
3262
3263**系统能力:** SystemCapability.Multimedia.Audio.Core
3264
3265**参数:**
3266
3267| 名称 | 描述 | 
3268| -------- | -------- |
3269| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3270| channelLayout | 音频流声道布局,具体参考[OH_AudioChannelLayout](../apis-avcodec-kit/_core.md#oh_audiochannellayout-1)。  | 
3271
3272**返回:**
3273
3274函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3275
3276AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3277
3278AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3279
3280
3281### OH_AudioStreamBuilder_SetEncodingType()
3282
3283```
3284OH_AudioStream_Result OH_AudioStreamBuilder_SetEncodingType(OH_AudioStreamBuilder *builder, OH_AudioStream_EncodingType encodingType)
3285```
3286**描述**
3287设置音频流的编码类型属性。
3288
3289**起始版本:** 10
3290
3291**系统能力:** SystemCapability.Multimedia.Audio.Core
3292
3293**参数:**
3294
3295| 名称 | 描述 | 
3296| -------- | -------- |
3297| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。 | 
3298| encodingType | 音频流编码类型。 | 
3299
3300**返回:**
3301
3302函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3303
3304AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3305
3306AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3307
3308### OH_AudioStreamBuilder_SetFrameSizeInCallback()
3309
3310```
3311OH_AudioStream_Result OH_AudioStreamBuilder_SetFrameSizeInCallback(OH_AudioStreamBuilder *builder, int32_t frameSize)
3312```
3313**描述**
3314用于播放时设置每次回调的帧长,帧长至少为音频硬件一次处理的数据大小,并且小于内部缓冲容量的一半。
3315
3316- 低时延播放:frameSize可设置为5ms、10ms、15ms、20ms音频数据对应的帧长。
3317- 普通通路播放:frameSize可设置为20ms-100ms音频数据对应的帧长。
3318
3319**起始版本:** 11
3320
3321**系统能力:** SystemCapability.Multimedia.Audio.Core
3322
3323**参数:**
3324
3325| 名称 | 描述 | 
3326| -------- | -------- |
3327| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3328| frameSize | 要设置音频数据的帧长。  | 
3329
3330**返回:**
3331
3332函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3333
3334AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3335
3336AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3337
3338
3339### OH_AudioStreamBuilder_SetLatencyMode()
3340
3341```
3342OH_AudioStream_Result OH_AudioStreamBuilder_SetLatencyMode(OH_AudioStreamBuilder *builder, OH_AudioStream_LatencyMode latencyMode)
3343```
3344**描述**
3345设置音频流的时延模式。
3346
3347**起始版本:** 10
3348
3349**系统能力:** SystemCapability.Multimedia.Audio.Core
3350
3351**参数:**
3352
3353| 名称 | 描述 | 
3354| -------- | -------- |
3355| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3356| latencyMode | 音频流时延模式。  | 
3357
3358**返回:**
3359
3360函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3361
3362AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3363
3364AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3365
3366
3367### OH_AudioStreamBuilder_SetRendererCallback()
3368
3369```
3370OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererCallback(OH_AudioStreamBuilder *builder, OH_AudioRenderer_Callbacks callbacks, void *userData)
3371```
3372**描述**
3373设置输出音频流的回调。
3374
3375**起始版本:** 10
3376
3377**系统能力:** SystemCapability.Multimedia.Audio.Core
3378
3379**参数:**
3380
3381| 名称 | 描述 | 
3382| -------- | -------- |
3383| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3384| callbacks | 将被用来处理输出音频流相关事件的回调函数。  | 
3385| userData | 指向通过回调函数传递的应用数据指针。  | 
3386
3387**返回:**
3388
3389函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3390
3391AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3392
3393AUDIOSTREAM_ERROR_INVALID_PARAM:
3394
3395  1. 参数builder为nullptr;
3396  2. StreamType无效。
3397
3398
3399### OH_AudioStreamBuilder_SetRendererInfo()
3400
3401```
3402OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInfo(OH_AudioStreamBuilder *builder, OH_AudioStream_Usage usage)
3403```
3404**描述**
3405设置输出音频流的工作场景。
3406
3407**起始版本:** 10
3408
3409**系统能力:** SystemCapability.Multimedia.Audio.Core
3410
3411**参数:**
3412
3413| 名称 | 描述 | 
3414| -------- | -------- |
3415| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3416| usage | 输出音频流属性,使用的工作场景。  | 
3417
3418**返回:**
3419
3420函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3421
3422AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3423
3424AUDIOSTREAM_ERROR_INVALID_PARAM:
3425
3426  1. 参数builder为nullptr;
3427  2. 参数usage无效。
3428
3429
3430### OH_AudioStreamBuilder_SetRendererInterruptMode()
3431
3432```
3433OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererInterruptMode (OH_AudioStreamBuilder *builder, OH_AudioInterrupt_Mode mode)
3434```
3435**描述**
3436设置流客户端的中断模式。
3437
3438**起始版本:** 12
3439
3440**系统能力:** SystemCapability.Multimedia.Audio.Core
3441
3442**参数:**
3443
3444| 名称 | 描述 | 
3445| -------- | -------- |
3446| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3447| mode | 音频中断模式[OH_AudioInterrupt_Mode](#oh_audiointerrupt_mode)。  | 
3448
3449**返回:**
3450
3451函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3452
3453AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3454
3455AUDIOSTREAM_ERROR_INVALID_PARAM:
3456
3457  1. 参数builder为nullptr;
3458  2. 参数mode无效;
3459  3. StreamType无效。
3460
3461
3462### OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback()
3463
3464```
3465OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererOutputDeviceChangeCallback (OH_AudioStreamBuilder * builder, OH_AudioRenderer_OutputDeviceChangeCallback callback, void * userData )
3466```
3467**描述**
3468设置输出音频流设备变更的回调。
3469
3470**起始版本:** 11
3471
3472**系统能力:** SystemCapability.Multimedia.Audio.Core
3473
3474**参数:**
3475
3476| 名称 | 描述 | 
3477| -------- | -------- |
3478| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3479| callbacks | 将被用来处理输出流设备变更相关事件的回调函数。  | 
3480| userData | 指向通过回调函数传递的应用数据指针。  | 
3481
3482**返回:**
3483
3484函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3485
3486AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3487
3488AUDIOSTREAM_ERROR_INVALID_PARAM:
3489
3490  1. 参数builder为nullptr;
3491  2. StreamType无效。
3492
3493
3494### OH_AudioStreamBuilder_SetRendererPrivacy()
3495
3496```
3497OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererPrivacy (OH_AudioStreamBuilder * builder, OH_AudioStream_PrivacyType privacy)
3498```
3499**描述**
3500设置当前播放音频流是否会被其它应用录制。
3501
3502**起始版本:** 12
3503
3504**系统能力:** SystemCapability.Multimedia.Audio.PlaybackCapture
3505
3506**参数:**
3507
3508| 名称 | 描述 | 
3509| -------- | -------- |
3510| builder | 指向[OH_AudioStreamBuilder_Create()](#oh_audiostreambuilder_create)创建的构造器实例。  | 
3511| privacy | 标识对应播放音频流是否会被其它应用录制。  | 
3512
3513**返回:**
3514
3515函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3516
3517AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3518
3519AUDIOSTREAM_ERROR_INVALID_PARAM:
3520
3521  1. 参数builder为nullptr;
3522  2. StreamType无效。
3523
3524
3525### OH_AudioStreamBuilder_SetRendererWriteDataCallback()
3526
3527```
3528OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererWriteDataCallback (OH_AudioStreamBuilder *builder, OH_AudioRenderer_OnWriteDataCallback callback, void *userData)
3529```
3530**描述**
3531设置写入音频数据的回调。
3532
3533该函数类似于 [OH_AudioStreamBuilder_SetRendererCallback](#oh_audiostreambuilder_setrenderercallback)。只有通过 OH_AudioStreamBuilder_SetRendererCallback或者此函数设置的最后一个回调函数才会被调用。
3534
3535**起始版本:** 12
3536
3537**系统能力:** SystemCapability.Multimedia.Audio.Core
3538
3539**参数:**
3540
3541| 名称 | 描述 | 
3542| -------- | -------- |
3543| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3544| callback | 将被用来写入音频数据的回调函数。  | 
3545| userData | 指向通过回调函数传递的应用数据指针。  | 
3546
3547**返回:**
3548
3549函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3550
3551AUDIOSTREAM_SUCCESS:函数执行成功。 
3552
3553AUDIOSTREAM_ERROR_INVALID_PARAM:
3554
3555  1. 参数builder为nullptr;
3556  2. StreamType无效。 
3557
3558
3559### OH_AudioStreamBuilder_SetSampleFormat()
3560
3561```
3562OH_AudioStream_Result OH_AudioStreamBuilder_SetSampleFormat(OH_AudioStreamBuilder *builder, OH_AudioStream_SampleFormat format)
3563```
3564**描述**
3565设置音频流的采样格式属性。
3566
3567**起始版本:** 10
3568
3569**系统能力:** SystemCapability.Multimedia.Audio.Core
3570
3571**参数:**
3572
3573| 名称 | 描述 | 
3574| -------- | -------- |
3575| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3576| format | 音频流采样格式。  | 
3577
3578**返回:**
3579
3580函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3581
3582AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3583
3584AUDIOSTREAM_ERROR_INVALID_PARAM:参数builder为nullptr。
3585
3586
3587### OH_AudioStreamBuilder_SetSamplingRate()
3588
3589```
3590OH_AudioStream_Result OH_AudioStreamBuilder_SetSamplingRate(OH_AudioStreamBuilder *builder, int32_t rate)
3591```
3592**描述**
3593设置音频流的采样率属性。
3594
3595**起始版本:** 10
3596
3597**系统能力:** SystemCapability.Multimedia.Audio.Core
3598
3599**参数:**
3600
3601| 名称 | 描述 | 
3602| -------- | -------- |
3603| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3604| channelCount | 音频流采样率。  | 
3605
3606**返回:**
3607
3608函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3609
3610AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3611
3612AUDIOSTREAM_ERROR_INVALID_PARAM:
3613
3614  1. 参数builder为nullptr;
3615  2. 参数rate无效。
3616
3617
3618### OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback()
3619
3620```
3621OH_AudioStream_Result OH_AudioStreamBuilder_SetWriteDataWithMetadataCallback (OH_AudioStreamBuilder *builder, OH_AudioRenderer_WriteDataWithMetadataCallback callback, void *userData)
3622```
3623**描述**
3624设置同时写入音频数据和元数据的回调。
3625
3626**起始版本:** 12
3627
3628**系统能力:** SystemCapability.Multimedia.Audio.Core
3629
3630**参数:**
3631
3632| 名称 | 描述 | 
3633| -------- | -------- |
3634| builder | 指向OH_AudioStreamBuilder_Create()创建的构造器实例。  | 
3635| callback | 将被用来同时写入音频数据和元数据的回调函数。  | 
3636| userData | 指向通过回调函数传递的应用数据指针。  | 
3637
3638**返回:**
3639
3640函数返回值[OH_AudioStream_Result](#oh_audiostream_result):
3641
3642AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3643
3644AUDIOSTREAM_ERROR_INVALID_PARAM:
3645
3646  1. 参数builder为nullptr;
3647  2. StreamType无效。
3648
3649
3650### OH_GetAudioManager()
3651
3652```
3653OH_AudioCommon_Result OH_GetAudioManager (OH_AudioManager ** audioManager)
3654```
3655**描述**
3656获取音频管理器。
3657
3658使用音频管理器相关功能,首先需要获取音频管理器实例。
3659
3660**起始版本:** 12
3661
3662**参数:**
3663
3664| 名称 | 描述 | 
3665| -------- | -------- |
3666| audioManager | 指向[OH_AudioManager](#oh_audiomanager)用于接收创建的音频管理器实例。  | 
3667
3668**返回:**
3669
3670函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
3671
3672AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。
3673
3674AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:参数audioManager为nullptr。
3675
3676
3677### OH_GetAudioScene()
3678
3679```
3680OH_AudioCommon_Result OH_GetAudioScene (OH_AudioManager * manager, OH_AudioScene * scene )
3681```
3682**描述**
3683获取音频场景模式。
3684
3685**起始版本:** 12
3686
3687**参数:**
3688
3689| 名称 | 描述 | 
3690| -------- | -------- |
3691| audioManager | 指向[OH_GetAudioManager](#oh_getaudiomanager)创建的音频管理器实例:[OH_AudioManager](#oh_audiomanager)。  | 
3692| scene | 指向[OH_AudioScene](#oh_audioscene)用于接收返回的音频场景模式。  | 
3693
3694**返回:**
3695
3696函数返回值[OH_AudioCommon_Result](#oh_audiocommon_result):
3697
3698AUDIOCOMMON_RESULT_SUCCESS:函数执行成功。 
3699
3700AUDIOCOMMON_RESULT_ERROR_INVALID_PARAM:
3701
37021. 参数audioManager为nullptr; 
37032. 参数scene为nullptr。
3704