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