diff --git a/lib/plugin/pl_player/view/view.dart b/lib/plugin/pl_player/view/view.dart index 7674430b6..3877a01e0 100644 --- a/lib/plugin/pl_player/view/view.dart +++ b/lib/plugin/pl_player/view/view.dart @@ -252,25 +252,27 @@ class _PLVideoPlayerState extends State Future.microtask(() async { try { - _brightnessValue.value = - await ScreenBrightnessPlatform.instance.application; - void listener(double value) { if (mounted) { _brightnessValue.value = value; } } - _brightnessListener = - Platform.isIOS || plPlayerController.setSystemBrightness - ? ScreenBrightnessPlatform - .instance - .onSystemScreenBrightnessChanged - .listen(listener) - : ScreenBrightnessPlatform - .instance - .onApplicationScreenBrightnessChanged - .listen(listener); + if (Platform.isIOS || plPlayerController.setSystemBrightness) { + _brightnessValue.value = + await ScreenBrightnessPlatform.instance.system; + _brightnessListener = ScreenBrightnessPlatform + .instance + .onSystemScreenBrightnessChanged + .listen(listener); + } else { + _brightnessValue.value = + await ScreenBrightnessPlatform.instance.application; + _brightnessListener = ScreenBrightnessPlatform + .instance + .onApplicationScreenBrightnessChanged + .listen(listener); + } } catch (_) {} }); } @@ -1078,9 +1080,9 @@ class _PLVideoPlayerState extends State } else if (_gestureType == GestureType.left) { // 左边区域 👈 final double level = maxHeight * 3; - final double brightness = _brightnessValue.value - delta.dy / level; - final double result = brightness.clamp(0.0, 1.0); - setBrightness(result); + final double brightness = (_brightnessValue.value - delta.dy / level) + .clamp(0.0, 1.0); + setBrightness(brightness); } else if (_gestureType == GestureType.center) { // 全屏 const double threshold = 2.5; // 滑动阈值 @@ -1126,6 +1128,11 @@ class _PLVideoPlayerState extends State } void _onInteractionEnd(ScaleEndDetails details) { + if (Platform.isAndroid && + _gestureType == .left && + plPlayerController.setSystemBrightness) { + ScreenBrightnessPlatform.instance.restoreBrightnessMode(); + } if (plPlayerController.showSeekPreview) { plPlayerController.showPreview.value = false; } diff --git a/pubspec.lock b/pubspec.lock index bc4253a17..69d50aa64 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1530,10 +1530,11 @@ packages: screen_brightness_android: dependency: "direct overridden" description: - name: screen_brightness_android - sha256: d34f5321abd03bc3474f4c381f53d189117eba0b039eac1916aa92cca5fd0a96 - url: "https://pub.dev" - source: hosted + path: screen_brightness_android + ref: dev + resolved-ref: "0696d1f3665511496bfeb842f02deada5cd57ff9" + url: "https://github.com/bggRGjQaUbCoE/screen_brightness.git" + source: git version: "2.1.3" screen_brightness_ios: dependency: "direct overridden" @@ -1546,10 +1547,11 @@ packages: screen_brightness_platform_interface: dependency: "direct main" description: - name: screen_brightness_platform_interface - sha256: "737bd47b57746bc4291cab1b8a5843ee881af499514881b0247ec77447ee769c" - url: "https://pub.dev" - source: hosted + path: screen_brightness_platform_interface + ref: dev + resolved-ref: "0696d1f3665511496bfeb842f02deada5cd57ff9" + url: "https://github.com/bggRGjQaUbCoE/screen_brightness.git" + source: git version: "2.1.0" screen_retriever: dependency: "direct main" diff --git a/pubspec.yaml b/pubspec.yaml index 028416a01..ed63f7926 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -254,8 +254,16 @@ dependencies: dependency_overrides: # screen_brightness: ^2.1. screen_brightness_ios: ^2.1.2 - screen_brightness_android: ^2.1.3 - screen_brightness_platform_interface: ^2.1.0 + screen_brightness_android: + git: + url: https://github.com/bggRGjQaUbCoE/screen_brightness.git + path: screen_brightness_android + ref: dev + screen_brightness_platform_interface: + git: + url: https://github.com/bggRGjQaUbCoE/screen_brightness.git + path: screen_brightness_platform_interface + ref: dev path: ^1.9.1 mime: ^2.0.0 rxdart: ^0.28.0