From 2f66769d818fb627680dbc116427593bcdeb7c68 Mon Sep 17 00:00:00 2001 From: xuzhangchi Date: Wed, 14 May 2025 11:54:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BD=95=E5=B1=8F=E6=A1=86=E6=9E=B6=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E7=AD=96=E7=95=A5=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xuzhangchi --- .../libnative_avscreen_capture.ndk.json | 16 +++++++ .../native_avscreen_capture.h | 47 +++++++++++++++++++ .../native_avscreen_capture_base.h | 8 ++++ 3 files changed, 71 insertions(+) diff --git a/multimedia/player_framework/avscreen_capture/libnative_avscreen_capture.ndk.json b/multimedia/player_framework/avscreen_capture/libnative_avscreen_capture.ndk.json index b5238bb28..e99fd6d40 100644 --- a/multimedia/player_framework/avscreen_capture/libnative_avscreen_capture.ndk.json +++ b/multimedia/player_framework/avscreen_capture/libnative_avscreen_capture.ndk.json @@ -110,5 +110,21 @@ { "first_introduced": "15", "name": "OH_AVScreenCapture_SetDisplayCallback" + }, + { + "first_introduced": "20", + "name": "OH_AVScreenCapture_CreateCaptureStrategy" + }, + { + "first_introduced": "20", + "name": "OH_AVScreenCapture_ReleaseCaptureStrategy" + }, + { + "first_introduced": "20", + "name": "OH_AVScreenCapture_SetCaptureStrategy" + }, + { + "first_introduced": "20", + "name": "OH_AVScreenCapture_StrategyForKeepCaptureDuringCall" } ] \ No newline at end of file diff --git a/multimedia/player_framework/native_avscreen_capture.h b/multimedia/player_framework/native_avscreen_capture.h index 150ebef4f..4636665d3 100644 --- a/multimedia/player_framework/native_avscreen_capture.h +++ b/multimedia/player_framework/native_avscreen_capture.h @@ -463,6 +463,53 @@ OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ShowCursor(struct OH_AVScreenCapt */ OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetDisplayCallback(struct OH_AVScreenCapture *capture, OH_AVScreenCapture_OnDisplaySelected callback, void *userData); + +/** + * @brief Create a screen capture Strategy object + * @syscap SystemCapability.Multimedia.Media.AVScreenCapture + * @return Returns a pointer to the screen capture strategy object, or null if failure + * @since 20 + */ +OH_AVScreenCapture_CaptureStrategy* OH_AVScreenCapture_CreateCaptureStrategy(void); + +/** + * @brief Release the screen capture Strategy object + * @syscap SystemCapability.Multimedia.Media.AVScreenCapture + * @param {OH_AVScreenCapture_CaptureStrategy*} strategy Pointer to an OH_AVScreenCapture_CaptureStrategy instance + * @return Function result code. + * {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful. + * {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} input strategy is nullptr. + * @since 20 + */ +OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_ReleaseCaptureStrategy(OH_AVScreenCapture_CaptureStrategy* strategy); + +/** + * @brief set the screen capture strategy for the specified screen capture + * @syscap SystemCapability.Multimedia.Media.AVScreenCapture + * @param {OH_AVScreenCapture*} capture Pointer to an OH_AVScreenCapture which need to be setted. + * @param {OH_AVScreenCapture_CaptureStrategy*} strategy Pointer to an OH_AVScreenCapture_CaptureStrategy which want to + * set. + * @return Function result code. + * {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful. + * {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} capture or strategyvalue is nullptr. + * @since 20 + */ +OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_SetCaptureStrategy( + struct OH_AVScreenCapture *capture, OH_AVScreenCapture_CaptureStrategy *strategy); + +/** + * @brief Call Settings Policy value for whether to allow screen capture during cellular calls + * @syscap SystemCapability.Multimedia.Media.AVScreenCapture + * @param {OH_AVScreenCapture_CaptureStrategy*} strategy Pointer to an OH_AVScreenCapture_CaptureStrategy instance + * @param {bool} value The default value is false, which means that screen recording is not allowed during cellular + * calls. + * @return Function result code. + * {@link AV_SCREEN_CAPTURE_ERR_OK} if the execution is successful. + * {@link AV_SCREEN_CAPTURE_ERR_INVALID_VAL} strategy value is nullptr. + * @since 20 + */ +OH_AVSCREEN_CAPTURE_ErrCode OH_AVScreenCapture_StrategyForKeepCaptureDuringCall( + OH_AVScreenCapture_CaptureStrategy *strategy, bool value); #ifdef __cplusplus } #endif diff --git a/multimedia/player_framework/native_avscreen_capture_base.h b/multimedia/player_framework/native_avscreen_capture_base.h index 85b1280d1..6c97667f1 100644 --- a/multimedia/player_framework/native_avscreen_capture_base.h +++ b/multimedia/player_framework/native_avscreen_capture_base.h @@ -532,6 +532,14 @@ typedef void (*OH_AVScreenCapture_OnBufferAvailable)(OH_AVScreenCapture *capture */ typedef void (*OH_AVScreenCapture_OnDisplaySelected)(OH_AVScreenCapture *capture, uint64_t displayId, void *userData); +/** + * @brief Initialization of OH_AVScreenCapture_CaptureStrategy + * @syscap SystemCapability.Multimedia.Media.AVScreenCapture + * + * @since 20 + */ +typedef struct OH_AVScreenCapture_CaptureStrategy OH_AVScreenCapture_CaptureStrategy; + #ifdef __cplusplus } #endif -- Gitee