diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index a361bc211..1a420f0ac 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -2122,8 +2122,7 @@ class _HeaderControlState extends State { onTap: videoIntroController.actionLikeVideo, onLongPress: () { videoIntroController.actionOneThree(); - plPlayerController.isSliderMoving.value = - false; + plPlayerController.isTriple = null; plPlayerController.hideTaskControls(); }, selectStatus: @@ -2137,8 +2136,7 @@ class _HeaderControlState extends State { callBack: (start) { if (start) { HapticFeedback.lightImpact(); - plPlayerController.isSliderMoving.value = - true; + plPlayerController.isTriple = true; _coinKey.currentState?.controller ?.forward(); _favKey.currentState?.controller?.forward(); @@ -2146,8 +2144,7 @@ class _HeaderControlState extends State { _coinKey.currentState?.controller ?.reverse(); _favKey.currentState?.controller?.reverse(); - plPlayerController.isSliderMoving.value = - false; + plPlayerController.isTriple = null; plPlayerController.hideTaskControls(); } }, @@ -2246,8 +2243,7 @@ class _HeaderControlState extends State { onTap: bangumiIntroController.actionLikeVideo, onLongPress: () { bangumiIntroController.actionOneThree(); - plPlayerController.isSliderMoving.value = - false; + plPlayerController.isTriple = null; plPlayerController.hideTaskControls(); }, selectStatus: @@ -2261,8 +2257,7 @@ class _HeaderControlState extends State { callBack: (start) { if (start) { HapticFeedback.lightImpact(); - plPlayerController.isSliderMoving.value = - true; + plPlayerController.isTriple = true; _coinKey.currentState?.controller ?.forward(); _favKey.currentState?.controller?.forward(); @@ -2270,8 +2265,7 @@ class _HeaderControlState extends State { _coinKey.currentState?.controller ?.reverse(); _favKey.currentState?.controller?.reverse(); - plPlayerController.isSliderMoving.value = - false; + plPlayerController.isTriple = null; plPlayerController.hideTaskControls(); } }, @@ -2305,7 +2299,10 @@ class _HeaderControlState extends State { () => ActionItem( key: _favKey, expand: false, - icon: const Icon(FontAwesomeIcons.star), + icon: const Icon( + FontAwesomeIcons.star, + color: Colors.white, + ), selectIcon: const Icon(FontAwesomeIcons.solidStar), onTap: () => bangumiIntroController diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index f99da009d..a2afb13e8 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1131,6 +1131,8 @@ class PlPlayerController { } } + bool? isTriple; + /// 隐藏控制条 void hideTaskControls() { if (_timer != null) { @@ -1138,7 +1140,7 @@ class PlPlayerController { } Duration waitingTime = Duration(seconds: enableLongShowControl ? 30 : 3); _timer = Timer(waitingTime, () { - if (!isSliderMoving.value) { + if (!isSliderMoving.value && isTriple != true) { controls = false; } _timer = null; diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 820f36352..2d24eabef 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -701,6 +701,7 @@ class _PLVideoPlayerState extends State scaleEnabled: !plPlayerController.controlsLock.value, // 启用缩放 minScale: 0.75, maxScale: 2.0, + boundaryMargin: const EdgeInsets.all(double.infinity), panAxis: PanAxis.aligned, onInteractionStart: (ScaleStartDetails details) { if (plPlayerController.controlsLock.value) return;