From a4571e5be91deb734d0ee886097f8b64ef671eb8 Mon Sep 17 00:00:00 2001 From: huchang Date: Mon, 11 Mar 2024 17:29:23 +0800 Subject: [PATCH] add mark interface on audio renderer Signed-off-by: huchang Change-Id: I2d2f2b04852ceadf73d9615448bf306051d49094 --- .../audio_renderer/native_audiorenderer.h | 23 +++++++++++++++++++ .../common/native_audiostream_base.h | 10 ++++++++ multimedia/audio_framework/ohaudio.ndk.json | 8 +++++++ 3 files changed, 41 insertions(+) diff --git a/multimedia/audio_framework/audio_renderer/native_audiorenderer.h b/multimedia/audio_framework/audio_renderer/native_audiorenderer.h index edc3d2a81..be164c362 100644 --- a/multimedia/audio_framework/audio_renderer/native_audiorenderer.h +++ b/multimedia/audio_framework/audio_renderer/native_audiorenderer.h @@ -281,6 +281,29 @@ OH_AudioStream_Result OH_AudioRenderer_SetVolumeWithRamp(OH_AudioRenderer* rende */ OH_AudioStream_Result OH_AudioRenderer_GetVolume(OH_AudioRenderer* renderer, float* volume); +/** + * @brief Set mark position on current renderer. Calling this function will overwrite the mark postion which has already + * set. + * + * @param renderer Renderer generated by OH_AudioStreamBuilder_GenerateRenderer() + * @param samplePos Mark position in samples. + * @param callback Callback used when the samplePos has reached. + * @param userData User data which is passed by user. + * @return {@link #AUDIOSTREAM_SUCCESS} or an undesired error. + * @since 12 + */ +OH_AudioStream_Result OH_AudioRenderer_SetMarkPosition(OH_AudioRenderer* renderer, uint32_t samplePos, + OH_AudioRenderer_OnMarkReachedCallback callback, void* userData); + +/** + * @brief Cancel mark which has set by {@link #OH_AudioRenderer_SetMarkPosition}. + * + * @param renderer Renderer generated by OH_AudioStreamBuilder_GenerateRenderer() + * @return {@link #AUDIOSTREAM_SUCCESS} or an undesired error. + * @since 12 + */ +OH_AudioStream_Result OH_AudioRenderer_CancelMark(OH_AudioRenderer* renderer); + #ifdef __cplusplus } #endif diff --git a/multimedia/audio_framework/common/native_audiostream_base.h b/multimedia/audio_framework/common/native_audiostream_base.h index 10332c357..e0db659ce 100644 --- a/multimedia/audio_framework/common/native_audiostream_base.h +++ b/multimedia/audio_framework/common/native_audiostream_base.h @@ -577,6 +577,16 @@ typedef enum { */ typedef void (*OH_AudioRenderer_OutputDeviceChangeCallback)(OH_AudioRenderer* renderer, void* userData, OH_AudioStream_DeviceChangeReason reason); + +/** + * @brief Callback when the mark position reached. + * + * @param renderer AudioRenderer where this event occurs. + * @param samplePos Mark position in samples. + * @param userData User data which is passed by user. + * @since 12 + */ +typedef void (*OH_AudioRenderer_OnMarkReachedCallback)(OH_AudioRenderer* renderer, uint32_t samplePos, void* userData); #ifdef __cplusplus } #endif diff --git a/multimedia/audio_framework/ohaudio.ndk.json b/multimedia/audio_framework/ohaudio.ndk.json index 9f6355063..9365cd644 100644 --- a/multimedia/audio_framework/ohaudio.ndk.json +++ b/multimedia/audio_framework/ohaudio.ndk.json @@ -206,5 +206,13 @@ { "first_introduced": "12", "name": "OH_AudioRenderer_GetVolume" + }, + { + "first_introduced": "12", + "name": "OH_AudioRenderer_SetMarkPosition" + }, + { + "first_introduced": "12", + "name": "OH_AudioRenderer_CancelMark" } ] -- Gitee