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