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