fix decrease system brightness on android

Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-05-01 20:13:04 +08:00
parent d27f5f315c
commit c4c5a75368
3 changed files with 43 additions and 26 deletions

View File

@@ -252,25 +252,27 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
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<PLVideoPlayer>
} 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<PLVideoPlayer>
}
void _onInteractionEnd(ScaleEndDetails details) {
if (Platform.isAndroid &&
_gestureType == .left &&
plPlayerController.setSystemBrightness) {
ScreenBrightnessPlatform.instance.restoreBrightnessMode();
}
if (plPlayerController.showSeekPreview) {
plPlayerController.showPreview.value = false;
}

View File

@@ -1522,10 +1522,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"
@@ -1538,10 +1539,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"

View File

@@ -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