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 b5238bb2876da686c1c0c94202a7184e44f345c4..e99fd6d40b448371515c314fecd1523387757882 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 150ebef4f1755430aca165442f0d158ecef65138..4636665d3ed759c260744f555b3405a510730c1c 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 85b1280d10cdf856dadf3dc95455a06119f0a192..6c97667f1e69ab5e424fca8d21407f97180a49a5 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