diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index ec1405f14..62a9d2f9d 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1370,49 +1370,52 @@ class PlPlayerController { } // 全屏 - Future triggerFullScreen({bool status = true}) async { - stopScreenTimer(); - FullScreenMode mode = FullScreenModeCode.fromCode( - setting.get(SettingBoxKey.fullScreenMode, defaultValue: 0))!; - bool removeSafeArea = setting.get(SettingBoxKey.videoPlayerRemoveSafeArea, - defaultValue: false); - if (!isFullScreen.value && status) { - // StatusBarControl.setHidden(true, animation: StatusBarAnimation.FADE); - hideStatusBar(); + void triggerFullScreen({bool status = true, int duration = 500}) { + EasyThrottle.throttle('fullScreen', Duration(milliseconds: duration), + () async { + stopScreenTimer(); + FullScreenMode mode = FullScreenModeCode.fromCode( + setting.get(SettingBoxKey.fullScreenMode, defaultValue: 0))!; + bool removeSafeArea = setting.get(SettingBoxKey.videoPlayerRemoveSafeArea, + defaultValue: false); + if (!isFullScreen.value && status) { + // StatusBarControl.setHidden(true, animation: StatusBarAnimation.FADE); + hideStatusBar(); - /// 按照视频宽高比决定全屏方向 - toggleFullScreen(true); + /// 按照视频宽高比决定全屏方向 + toggleFullScreen(true); - /// 进入全屏 - if (mode == FullScreenMode.none) { - return; + /// 进入全屏 + if (mode == FullScreenMode.none) { + return; + } + if (mode == FullScreenMode.gravity) { + fullAutoModeForceSensor(); + return; + } + if (mode == FullScreenMode.vertical || + (mode == FullScreenMode.auto && direction.value == 'vertical') || + (mode == FullScreenMode.ratio && + (Get.height / Get.width < 1.25 || + direction.value == 'vertical'))) { + await verticalScreenForTwoSeconds(); + } else { + await landScape(); + } + } else if (isFullScreen.value && !status) { + // StatusBarControl.setHidden(false, animation: StatusBarAnimation.FADE); + if (!removeSafeArea) showStatusBar(); + toggleFullScreen(false); + if (mode == FullScreenMode.none) { + return; + } + if (!setting.get(SettingBoxKey.horizontalScreen, defaultValue: false)) { + await verticalScreenForTwoSeconds(); + } else { + await autoScreen(); + } } - if (mode == FullScreenMode.gravity) { - fullAutoModeForceSensor(); - return; - } - if (mode == FullScreenMode.vertical || - (mode == FullScreenMode.auto && direction.value == 'vertical') || - (mode == FullScreenMode.ratio && - (Get.height / Get.width < 1.25 || - direction.value == 'vertical'))) { - await verticalScreenForTwoSeconds(); - } else { - await landScape(); - } - } else if (isFullScreen.value && !status) { - // StatusBarControl.setHidden(false, animation: StatusBarAnimation.FADE); - if (!removeSafeArea) showStatusBar(); - toggleFullScreen(false); - if (mode == FullScreenMode.none) { - return; - } - if (!setting.get(SettingBoxKey.horizontalScreen, defaultValue: false)) { - await verticalScreenForTwoSeconds(); - } else { - await autoScreen(); - } - } + }); } void addPositionListener(Function(Duration position) listener) => diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 703b1b207..0fbecb7e7 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -629,8 +629,8 @@ class _PLVideoPlayerState extends State size: 24, color: Colors.white, ), - fuc: () => - plPlayerController.triggerFullScreen(status: !isFullScreen), + fuc: () => plPlayerController.triggerFullScreen( + status: !isFullScreen, duration: 800), ), ), ), @@ -842,11 +842,8 @@ class _PLVideoPlayerState extends State details.localFocalPoint.dy - _initialFocalPoint.dy; void fullScreenTrigger(bool status) { - EasyThrottle.throttle( - 'fullScreen', const Duration(milliseconds: 800), - () async { - await plPlayerController.triggerFullScreen(status: status); - }); + plPlayerController.triggerFullScreen( + status: status, duration: 800); } if (cumulativeDy > threshold) { @@ -1170,12 +1167,7 @@ class _PLVideoPlayerState extends State details.localPosition.dy - _initialFocalPoint.dy; void fullScreenTrigger(bool status) { - EasyThrottle.throttle( - 'fullScreen', const Duration(milliseconds: 800), - () async { - await plPlayerController.triggerFullScreen( - status: status); - }); + plPlayerController.triggerFullScreen(status: status); } if (cumulativeDy > threshold) {