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