mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-05-20 16:18:39 +00:00
opt handle brightness/volume
Closes #2134 Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
@@ -153,6 +153,54 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
|||||||
bool _pauseDueToPauseUponEnteringBackgroundMode = false;
|
bool _pauseDueToPauseUponEnteringBackgroundMode = false;
|
||||||
|
|
||||||
StreamSubscription? _brightnessListener;
|
StreamSubscription? _brightnessListener;
|
||||||
|
void _onBrightnessChanged(double value) {
|
||||||
|
if (mounted && _gestureType != .left) {
|
||||||
|
_brightnessValue.value = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _getSystemBrightness() {
|
||||||
|
ScreenBrightnessPlatform.instance.system.then((res) {
|
||||||
|
if (mounted) {
|
||||||
|
_brightnessValue.value = res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _getAppBrightness() {
|
||||||
|
ScreenBrightnessPlatform.instance.application.then((res) {
|
||||||
|
if (mounted) {
|
||||||
|
_brightnessValue.value = res;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _onVolumeChanged(double value) {
|
||||||
|
if (mounted && !plPlayerController.volumeInterceptEventStream) {
|
||||||
|
plPlayerController.volume.value = value;
|
||||||
|
if (Platform.isIOS && !FlutterVolumeController.showSystemUI) {
|
||||||
|
plPlayerController
|
||||||
|
..volumeIndicator.value = true
|
||||||
|
..volumeTimer?.cancel()
|
||||||
|
..volumeTimer = Timer(
|
||||||
|
const Duration(milliseconds: 800),
|
||||||
|
() {
|
||||||
|
if (mounted) {
|
||||||
|
plPlayerController.volumeIndicator.value = false;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _getCurrVolume() {
|
||||||
|
FlutterVolumeController.getVolume().then((res) {
|
||||||
|
if (mounted) {
|
||||||
|
plPlayerController.volume.value = res!;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
int? tmpSubtitlePaddingB;
|
int? tmpSubtitlePaddingB;
|
||||||
StreamSubscription? _controlsListener;
|
StreamSubscription? _controlsListener;
|
||||||
@@ -220,51 +268,29 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
|||||||
videoController = plPlayerController.videoController!;
|
videoController = plPlayerController.videoController!;
|
||||||
|
|
||||||
if (PlatformUtils.isMobile) {
|
if (PlatformUtils.isMobile) {
|
||||||
Future.microtask(() async {
|
Future.microtask(() {
|
||||||
try {
|
try {
|
||||||
FlutterVolumeController.updateShowSystemUI(true);
|
FlutterVolumeController.updateShowSystemUI(true);
|
||||||
plPlayerController.volume.value =
|
_getCurrVolume();
|
||||||
(await FlutterVolumeController.getVolume())!;
|
FlutterVolumeController.addListener(
|
||||||
FlutterVolumeController.addListener((double value) {
|
_onVolumeChanged,
|
||||||
if (mounted && !plPlayerController.volumeInterceptEventStream) {
|
emitOnStart: false,
|
||||||
plPlayerController.volume.value = value;
|
);
|
||||||
if (Platform.isIOS && !FlutterVolumeController.showSystemUI) {
|
|
||||||
plPlayerController
|
|
||||||
..volumeIndicator.value = true
|
|
||||||
..volumeTimer?.cancel()
|
|
||||||
..volumeTimer = Timer(const Duration(milliseconds: 800), () {
|
|
||||||
if (mounted) {
|
|
||||||
plPlayerController.volumeIndicator.value = false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, emitOnStart: false);
|
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
});
|
|
||||||
|
|
||||||
Future.microtask(() async {
|
|
||||||
try {
|
try {
|
||||||
void listener(double value) {
|
|
||||||
if (mounted) {
|
|
||||||
_brightnessValue.value = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Platform.isIOS || plPlayerController.setSystemBrightness) {
|
if (Platform.isIOS || plPlayerController.setSystemBrightness) {
|
||||||
_brightnessValue.value =
|
_getSystemBrightness();
|
||||||
await ScreenBrightnessPlatform.instance.system;
|
|
||||||
_brightnessListener = ScreenBrightnessPlatform
|
_brightnessListener = ScreenBrightnessPlatform
|
||||||
.instance
|
.instance
|
||||||
.onSystemScreenBrightnessChanged
|
.onSystemScreenBrightnessChanged
|
||||||
.listen(listener);
|
.listen(_onBrightnessChanged);
|
||||||
} else {
|
} else {
|
||||||
_brightnessValue.value =
|
_getAppBrightness();
|
||||||
await ScreenBrightnessPlatform.instance.application;
|
|
||||||
_brightnessListener = ScreenBrightnessPlatform
|
_brightnessListener = ScreenBrightnessPlatform
|
||||||
.instance
|
.instance
|
||||||
.onApplicationScreenBrightnessChanged
|
.onApplicationScreenBrightnessChanged
|
||||||
.listen(listener);
|
.listen(_onBrightnessChanged);
|
||||||
}
|
}
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
});
|
});
|
||||||
@@ -321,6 +347,7 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> setBrightness(double value) async {
|
Future<void> setBrightness(double value) async {
|
||||||
|
_brightnessValue.value = value;
|
||||||
try {
|
try {
|
||||||
if (Platform.isIOS || plPlayerController.setSystemBrightness) {
|
if (Platform.isIOS || plPlayerController.setSystemBrightness) {
|
||||||
await ScreenBrightnessPlatform.instance.setSystemScreenBrightness(
|
await ScreenBrightnessPlatform.instance.setSystemScreenBrightness(
|
||||||
@@ -1105,11 +1132,6 @@ class _PLVideoPlayerState extends State<PLVideoPlayer>
|
|||||||
}
|
}
|
||||||
|
|
||||||
void _onPanEnd(ScaleEndDetails details) {
|
void _onPanEnd(ScaleEndDetails details) {
|
||||||
if (Platform.isAndroid &&
|
|
||||||
_gestureType == .left &&
|
|
||||||
plPlayerController.setSystemBrightness) {
|
|
||||||
ScreenBrightnessPlatform.instance.restoreBrightnessMode();
|
|
||||||
}
|
|
||||||
if (plPlayerController.showSeekPreview) {
|
if (plPlayerController.showSeekPreview) {
|
||||||
plPlayerController.showPreview.value = false;
|
plPlayerController.showPreview.value = false;
|
||||||
}
|
}
|
||||||
|
|||||||
18
pubspec.lock
18
pubspec.lock
@@ -1531,11 +1531,10 @@ packages:
|
|||||||
screen_brightness_android:
|
screen_brightness_android:
|
||||||
dependency: "direct overridden"
|
dependency: "direct overridden"
|
||||||
description:
|
description:
|
||||||
path: screen_brightness_android
|
name: screen_brightness_android
|
||||||
ref: dev
|
sha256: "2df5e0488a22a73271a43d92dbcd80643df6910cf69690faacaf9929ae9ade3b"
|
||||||
resolved-ref: "9823a66d9a0af8d9f5d0d9e98f87bb17e399235e"
|
url: "https://pub.dev"
|
||||||
url: "https://github.com/bggRGjQaUbCoE/screen_brightness.git"
|
source: hosted
|
||||||
source: git
|
|
||||||
version: "2.1.4"
|
version: "2.1.4"
|
||||||
screen_brightness_ios:
|
screen_brightness_ios:
|
||||||
dependency: "direct overridden"
|
dependency: "direct overridden"
|
||||||
@@ -1548,11 +1547,10 @@ packages:
|
|||||||
screen_brightness_platform_interface:
|
screen_brightness_platform_interface:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: screen_brightness_platform_interface
|
name: screen_brightness_platform_interface
|
||||||
ref: dev
|
sha256: "59d50850d6735d677780fc7359c8e997d0ff6df91c8465161c9e617a7b0a11d8"
|
||||||
resolved-ref: "9823a66d9a0af8d9f5d0d9e98f87bb17e399235e"
|
url: "https://pub.dev"
|
||||||
url: "https://github.com/bggRGjQaUbCoE/screen_brightness.git"
|
source: hosted
|
||||||
source: git
|
|
||||||
version: "2.1.1"
|
version: "2.1.1"
|
||||||
screen_retriever:
|
screen_retriever:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
|
|||||||
14
pubspec.yaml
14
pubspec.yaml
@@ -209,17 +209,9 @@ dependency_overrides:
|
|||||||
mime: ^2.0.0
|
mime: ^2.0.0
|
||||||
path: ^1.9.1
|
path: ^1.9.1
|
||||||
rxdart: ^0.28.0
|
rxdart: ^0.28.0
|
||||||
screen_brightness_android:
|
screen_brightness_android: ^2.1.4
|
||||||
git:
|
screen_brightness_ios: ^2.1.3
|
||||||
url: https://github.com/bggRGjQaUbCoE/screen_brightness.git
|
screen_brightness_platform_interface: ^2.1.1
|
||||||
path: screen_brightness_android
|
|
||||||
ref: dev
|
|
||||||
screen_brightness_ios: ^2.1.2
|
|
||||||
screen_brightness_platform_interface:
|
|
||||||
git:
|
|
||||||
url: https://github.com/bggRGjQaUbCoE/screen_brightness.git
|
|
||||||
path: screen_brightness_platform_interface
|
|
||||||
ref: dev
|
|
||||||
|
|
||||||
dev_dependencies:
|
dev_dependencies:
|
||||||
flutter_test:
|
flutter_test:
|
||||||
|
|||||||
Reference in New Issue
Block a user