diff --git a/zh-cn/native_sdk/multimedia/audio_framework/audio_capturer/native_audiocapturer.h b/zh-cn/native_sdk/multimedia/audio_framework/audio_capturer/native_audiocapturer.h index ba27895a80db62cb30ca76ad7784c8790d7c722d..5afdd8e38e674e0fc4be1d35e9931e0805e0d7d2 100644 --- a/zh-cn/native_sdk/multimedia/audio_framework/audio_capturer/native_audiocapturer.h +++ b/zh-cn/native_sdk/multimedia/audio_framework/audio_capturer/native_audiocapturer.h @@ -315,6 +315,34 @@ typedef void (*OH_AudioCapturer_OnInterruptCallback)(OH_AudioCapturer* capturer, typedef void (*OH_AudioCapturer_OnErrorCallback)(OH_AudioCapturer* renderer, void* userData, OH_AudioStream_Result error); +/** + * @brief 获取音频录制过程中的运行状态,是否在低时延状态下工作。 + * + * @param capturer 指向{@link OH_AudioStreamBuilder_GenerateCapturer}创建的音频流实例。 + * @param status 指向接收低时延状态的指针。 + * @return + * AUDIOSTREAM_SUCCESS:函数执行成功。\n + * AUDIOSTREAM_ERROR_INVALID_PARAM:参数capturer为nullptr。\n + * AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常,仅在释放状态之前可用。 + * @since 20 + */ +OH_AudioStream_Result OH_AudioCapturer_GetFastStatus(OH_AudioCapturer* capturer, + OH_AudioStream_FastStatus* status); + +/** + * @brief 音频录制过程中低时延状态改变事件的回调函数。 + * + * @param capturer 指向{@link OH_AudioStreamBuilder_GenerateCapturer}创建的音频流实例。 + * @param userData 指向应用自定义的数据存储区域。 + * @param status 返回当前低时延状态。 + * @since 20 + */ +typedef void (*OH_AudioCapturer_OnFastStatusChange)( + OH_AudioCapturer* capturer, + void* userData, + OH_AudioStream_FastStatus status +); + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/multimedia/audio_framework/audio_manager/native_audio_stream_manager.h b/zh-cn/native_sdk/multimedia/audio_framework/audio_manager/native_audio_stream_manager.h index 86e21473773a70bd2ed1324575a6c4224939aeb6..c87cbb39b6482af588d69a61686f1f96f1a24676 100644 --- a/zh-cn/native_sdk/multimedia/audio_framework/audio_manager/native_audio_stream_manager.h +++ b/zh-cn/native_sdk/multimedia/audio_framework/audio_manager/native_audio_stream_manager.h @@ -104,6 +104,32 @@ OH_AudioCommon_Result OH_AudioStreamManager_IsAcousticEchoCancelerSupported( OH_AudioStream_SourceType sourceType, bool *supported); +/** + * @brief 查询当前设备在特定音频流信息和使用场景下是否支持低时延播放。 + * + * @param streamManager 音频流管理器句柄。 + * 通过 {@link OH_AudioManager_GetAudioStreamManager}获取句柄。 + * @param streamInfo 音频流信息指针。 + * @param usage 音频流使用场景。 + * @return 返回true的情况下表示支持低时延播放。 + * @since 20 + */ +bool OH_AudioStreamManager_IsFastPlaybackSupported( + OH_AudioStreamManager *streamManager, OH_AudioStreamInfo *streamInfo, OH_AudioStream_Usage usage); + +/** + * @brief 查询当前设备在特定音频流信息和使用场景下是否支持低时延录制。 + * + * @param streamManager 音频流管理器句柄。 + * 通过 {@link OH_AudioManager_GetAudioStreamManager}获取句柄。 + * @param streamInfo 音频流信息指针。 + * @param source 音频流使用场景。 + * @return 返回true的情况下表示支持低时延录制。 + * @since 20 + */ +bool OH_AudioStreamManager_IsFastRecordingSupported( + OH_AudioStreamManager *streamManager, OH_AudioStreamInfo *streamInfo, OH_AudioStream_SourceType source); + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/multimedia/audio_framework/audio_renderer/native_audiorenderer.h b/zh-cn/native_sdk/multimedia/audio_framework/audio_renderer/native_audiorenderer.h index 13f40f420ccf58ef44f7c75ae078de3853a99379..f8cebddd004fd07413fd4323bda0a20b56c1cfc5 100644 --- a/zh-cn/native_sdk/multimedia/audio_framework/audio_renderer/native_audiorenderer.h +++ b/zh-cn/native_sdk/multimedia/audio_framework/audio_renderer/native_audiorenderer.h @@ -527,6 +527,34 @@ typedef void (*OH_AudioRenderer_OnInterruptCallback)(OH_AudioRenderer* renderer, typedef void (*OH_AudioRenderer_OnErrorCallback)(OH_AudioRenderer* renderer, void* userData, OH_AudioStream_Result error); +/** + * @brief 获取音频播放过程中的运行状态,是否在低时延状态下工作。 + * + * @param capturer 指向{@link OH_AudioStreamBuilder_GenerateRenderer}创建的音频流实例。 + * @param status 指向接收低时延状态的指针。 + * @return + * AUDIOSTREAM_SUCCESS:函数执行成功。\n + * AUDIOSTREAM_ERROR_INVALID_PARAM:参数renderer为nullptr。\n + * AUDIOSTREAM_ERROR_ILLEGAL_STATE:执行状态异常,仅在释放状态之前可用。 + * @since 20 + */ +OH_AudioStream_Result OH_AudioRenderer_GetFastStatus(OH_AudioRenderer* renderer, + OH_AudioStream_FastStatus* status); + +/** + * @brief 音频播放过程中低时延状态改变事件的回调函数。 + * + * @param capturer 指向{@link OH_AudioStreamBuilder_GenerateRenderer}创建的音频流实例。 + * @param userData 指向应用自定义的数据存储区域。 + * @param status 返回当前低时延状态。 + * @since 20 + */ +typedef void (*OH_AudioRenderer_OnFastStatusChange)( + OH_AudioRenderer* renderer, + void* userData, + OH_AudioStream_FastStatus status +); + #ifdef __cplusplus } #endif diff --git a/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostream_base.h b/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostream_base.h index d725d760a6bd5ca874e152db07232b79ba8ad287..5acfe3b957a764df2a194901352c1e80a8fe116c 100644 --- a/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostream_base.h +++ b/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostream_base.h @@ -501,6 +501,22 @@ typedef enum { EFFECT_DEFAULT = 1, } OH_AudioStream_AudioEffectMode; +/** + * @brief 定义低时延状态。 + * + * @since 20 + */ +typedef enum { + /** + * 普通音频流状态 + */ + AUDIOSTREAM_FASTSTATUS_NORMAL = 0, + /** + * 低时延音频流状态 + */ + AUDIOSTREAM_FASTSTATUS_FAST = 1 +} OH_AudioStream_FastStatus; + /** * @brief 声明音频流的构造器。 * diff --git a/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostreambuilder.h b/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostreambuilder.h index 378bc1fd339e07fdcccce0be1342028e03f6250f..49974656a057ad40d51fe043f05730110a782ad0 100644 --- a/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostreambuilder.h +++ b/zh-cn/native_sdk/multimedia/audio_framework/common/native_audiostreambuilder.h @@ -482,6 +482,35 @@ OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerErrorCallback(OH_AudioStr */ OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerWillMuteWhenInterrupted(OH_AudioStreamBuilder* builder, bool muteWhenInterrupted); + +/** + * @brief 设置音频播放过程中低时延状态改变事件的回调函数。 + * + * @param builder 指向{@link OH_AudioStreamBuilder_Create}创建的构造器实例。 + * @param callback 用于接收播放低时延状态改变事件的回调函数。 + * @param userData 向应用程序数据结构的指针,该结构将传递给回调函数。 + * @return + * {@link AUDIOSTREAM_SUCCESS} 函数执行成功。\n + * {@link AUDIOSTREAM_ERROR_INVALID_PARAM} 参数无效,比如,builder为空指针。 + * @since 20 + */ +OH_AudioStream_Result OH_AudioStreamBuilder_SetRendererFastStatusChangeCallback(OH_AudioStreamBuilder* builder, + OH_AudioRenderer_OnFastStatusChange callback, void* userData); + +/** + * @brief 设置音频录制过程中低时延状态改变事件的回调函数。 + * + * @param builder 指向{@link OH_AudioStreamBuilder_Create}创建的构造器实例。 + * @param callback 用于接收录制低时延状态改变事件的回调函数。 + * @param userData 向应用程序数据结构的指针,该结构将传递给回调函数。 + * @return + * {@link AUDIOSTREAM_SUCCESS} 函数执行成功。\n + * {@link AUDIOSTREAM_ERROR_INVALID_PARAM} 参数无效,比如,builder为空指针。 + * @since 20 + */ +OH_AudioStream_Result OH_AudioStreamBuilder_SetCapturerFastStatusChangeCallback(OH_AudioStreamBuilder* builder, + OH_AudioCapturer_OnFastStatusChange callback, void* userData); + #ifdef __cplusplus } #endif