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