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