From b043dc38c4c163bb68445cf6896f47179fed5246 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Wed, 17 Sep 2025 17:03:01 +0800 Subject: [PATCH] opt player Signed-off-by: bggRGjQaUbCoE --- lib/pages/main/view.dart | 16 ++- lib/pages/video/widgets/header_control.dart | 4 +- lib/plugin/pl_player/controller.dart | 33 +++++-- lib/plugin/pl_player/view.dart | 104 -------------------- lib/utils/login_utils.dart | 2 +- pubspec.lock | 2 +- 6 files changed, 33 insertions(+), 128 deletions(-) diff --git a/lib/pages/main/view.dart b/lib/pages/main/view.dart index 31c50403..15800201 100644 --- a/lib/pages/main/view.dart +++ b/lib/pages/main/view.dart @@ -110,21 +110,17 @@ class _MainAppState extends State @override Future onWindowMoved() async { - if (!await windowManager.isMaximized()) { - final Offset offset = await windowManager.getPosition(); - _setting.put(SettingBoxKey.windowPosition, [ - offset.dx, - offset.dy, - ]); - } + final Offset offset = await windowManager.getPosition(); + _setting.put(SettingBoxKey.windowPosition, [offset.dx, offset.dy]); } @override Future onWindowResized() async { final Rect bounds = await windowManager.getBounds(); - _setting - ..put(SettingBoxKey.windowSize, [bounds.width, bounds.height]) - ..put(SettingBoxKey.windowPosition, [bounds.left, bounds.top]); + _setting.putAll({ + SettingBoxKey.windowSize: [bounds.width, bounds.height], + SettingBoxKey.windowPosition: [bounds.left, bounds.top], + }); } @override diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 502dd3b9..b73618d5 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -1622,9 +1622,9 @@ class HeaderControlState extends TripleState { data: sliderTheme, child: Slider( min: 0, - max: 3, + max: 5, value: strokeWidth, - divisions: 6, + divisions: 10, label: '$strokeWidth', onChanged: updateStrokeWidth, onChangeEnd: (_) => plPlayerController diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 9441d011..f8a237c9 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -374,16 +374,29 @@ class PlPlayerController { late final Rx subtitleConfig = _getSubConfig.obs; - SubtitleViewConfiguration get _getSubConfig => SubtitleViewConfiguration( - style: subTitleStyle, - padding: EdgeInsets.only( - left: subtitlePaddingH.toDouble(), - right: subtitlePaddingH.toDouble(), - bottom: subtitlePaddingB.toDouble(), - ), - textScaleFactor: 1, - strokeWidth: subtitleBgOpaticy == 0 ? subtitleStrokeWidth : null, - ); + SubtitleViewConfiguration get _getSubConfig { + final subTitleStyle = this.subTitleStyle; + return SubtitleViewConfiguration( + style: subTitleStyle, + strokeStyle: subtitleBgOpaticy == 0 + ? subTitleStyle.copyWith( + color: null, + background: null, + backgroundColor: null, + foreground: Paint() + ..color = Colors.black + ..style = PaintingStyle.stroke + ..strokeWidth = subtitleStrokeWidth, + ) + : null, + padding: EdgeInsets.only( + left: subtitlePaddingH.toDouble(), + right: subtitlePaddingH.toDouble(), + bottom: subtitlePaddingB.toDouble(), + ), + textScaleFactor: 1, + ); + } void updateSubtitleStyle() { subtitleConfig.value = _getSubConfig; diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index cf1f6e25..ac12ffb1 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -1009,107 +1009,6 @@ class _PLVideoPlayerState extends State _gestureType = null; } - void onVerticalDragStart(DragStartDetails details) { - if (plPlayerController.controlsLock.value) return; - if (details.localPosition.dy < 40) return; - if (details.localPosition.dx < 40) return; - if (details.localPosition.dx > maxWidth - 40) return; - if (details.localPosition.dy > maxHeight - 40) return; - _initialFocalPoint = details.localPosition; - _gestureType = null; - } - - void onVerticalDragUpdate(DragUpdateDetails details) { - if (plPlayerController.controlsLock.value) return; - if (!plPlayerController.enableSlideVolumeBrightness && - !plPlayerController.enableSlideFS) { - return; - } - final double tapPosition = details.localPosition.dx; - final double sectionWidth = maxWidth / 3; - late GestureType gestureType; - if (tapPosition < sectionWidth) { - if (Utils.isDesktop || !plPlayerController.enableSlideVolumeBrightness) { - return; - } - // 左边区域 - gestureType = GestureType.left; - } else if (tapPosition < sectionWidth * 2) { - if (!plPlayerController.enableSlideFS) { - return; - } - // 全屏 - gestureType = GestureType.center; - } else { - if (!plPlayerController.enableSlideVolumeBrightness) { - return; - } - // 右边区域 - gestureType = GestureType.right; - } - - if (_gestureType != null && _gestureType != gestureType) { - return; - } - _gestureType = gestureType; - - if (_gestureType == GestureType.left) { - // 左边区域 👈 - final double level = maxHeight * 3; - final double brightness = - _brightnessValue.value - details.delta.dy / level; - final double result = brightness.clamp(0.0, 1.0); - setBrightness(result); - } else if (_gestureType == GestureType.center) { - // 全屏 - const double threshold = 2.5; // 滑动阈值 - double cumulativeDy = details.localPosition.dy - _initialFocalPoint.dy; - - void fullScreenTrigger(bool status) { - plPlayerController.triggerFullScreen(status: status); - } - - if (cumulativeDy > threshold) { - _gestureType = GestureType.center_down; - if (isFullScreen ^ plPlayerController.fullScreenGestureReverse) { - fullScreenTrigger( - plPlayerController.fullScreenGestureReverse, - ); - } - // if (kDebugMode) debugPrint('center_down:$cumulativeDy'); - } else if (cumulativeDy < -threshold) { - _gestureType = GestureType.center_up; - if (!isFullScreen ^ plPlayerController.fullScreenGestureReverse) { - fullScreenTrigger( - !plPlayerController.fullScreenGestureReverse, - ); - } - // if (kDebugMode) debugPrint('center_up:$cumulativeDy'); - } - } else if (_gestureType == GestureType.right) { - // 右边区域 - final double level = maxHeight * 0.5; - EasyThrottle.throttle( - 'setVolume', - const Duration(milliseconds: 20), - () { - final double volume = clampDouble( - plPlayerController.volume.value - details.delta.dy / level, - 0.0, - 1.0, - ); - setVolume(volume); - }, - ); - } - } - - void onVerticalDragEnd(DragEndDetails details) { - interacting = false; - _initialFocalPoint = Offset.zero; - _gestureType = null; - } - void onDoubleTapDown(TapDownDetails details) { if (plPlayerController.controlsLock.value) { return; @@ -1283,9 +1182,6 @@ class _PLVideoPlayerState extends State onInteractionEnd: _onInteractionEnd, flipX: plPlayerController.flipX.value, flipY: plPlayerController.flipY.value, - onVerticalDragStart: onVerticalDragStart, - onVerticalDragUpdate: onVerticalDragUpdate, - onVerticalDragEnd: onVerticalDragEnd, onTap: () => plPlayerController.controls = !plPlayerController.showControls.value, onDoubleTapDown: onDoubleTapDown, diff --git a/lib/utils/login_utils.dart b/lib/utils/login_utils.dart index 32117d8f..6c1a31de 100644 --- a/lib/utils/login_utils.dart +++ b/lib/utils/login_utils.dart @@ -117,7 +117,7 @@ abstract class LoginUtils { GrpcReq.updateHeaders(null); await Future.wait([ - web.CookieManager().deleteAllCookies(), + if (!Platform.isWindows) web.CookieManager().deleteAllCookies(), GStorage.userInfo.delete('userInfoCache'), ]); diff --git a/pubspec.lock b/pubspec.lock index cc94befb..ef43d484 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1195,7 +1195,7 @@ packages: description: path: media_kit_video ref: "version_1.2.5" - resolved-ref: "484d040a05133343eb01752ce48bfe545219a80a" + resolved-ref: "3ab061c314d0a7f57e8cd6ea610cc1977686fdc1" url: "https://github.com/bggRGjQaUbCoE/media-kit.git" source: git version: "1.2.5"