diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 8cdb56bc..20b3cf88 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1169,6 +1169,7 @@ 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, diff --git a/lib/plugin/pl_player/utils/fullscreen.dart b/lib/plugin/pl_player/utils/fullscreen.dart index ba95e2fb..bf8c1638 100644 --- a/lib/plugin/pl_player/utils/fullscreen.dart +++ b/lib/plugin/pl_player/utils/fullscreen.dart @@ -1,3 +1,4 @@ +import 'dart:async'; import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; @@ -7,6 +8,12 @@ import 'package:flutter/services.dart'; import '../../../utils/storage.dart'; +Timer? screenTimer; +void stopScreenTimer() { + screenTimer?.cancel(); + screenTimer = null; +} + //横屏 Future landScape() async { dynamic document; @@ -32,8 +39,9 @@ Future verticalScreenForTwoSeconds() async { await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp, ]); - Future.delayed(const Duration(seconds: 2), () { + screenTimer = Timer(const Duration(seconds: 2), () { autoScreen(); + screenTimer = null; }); }