From d33d2a1c867ac25d719a28c6223ce0e13f0000c9 Mon Sep 17 00:00:00 2001 From: dom Date: Sat, 27 Jun 2026 16:19:14 +0800 Subject: [PATCH] tweaks Signed-off-by: dom --- lib/pages/video/view.dart | 24 ++++-------------------- lib/plugin/pl_player/controller.dart | 6 +++++- 2 files changed, 9 insertions(+), 21 deletions(-) diff --git a/lib/pages/video/view.dart b/lib/pages/video/view.dart index e431a48b3..6e20e1aa3 100644 --- a/lib/pages/video/view.dart +++ b/lib/pages/video/view.dart @@ -635,7 +635,7 @@ class _VideoDetailPageVState extends State Text( '${videoDetailController.playedTime == null ? '立即' - : plPlayerController!.playerStatus.isCompleted + : plPlayerController!.isCompleted ? '重新' : '继续'}播放', style: TextStyle( @@ -693,13 +693,11 @@ class _VideoDetailPageVState extends State : Positioned.fill( bottom: -2, child: GestureDetector( - onTap: () async { + onTap: () { if (!videoDetailController.isFileSource) { if (videoDetailController.isQuerying) { if (kDebugMode) { - debugPrint( - 'handlePlay: querying', - ); + debugPrint('handlePlay: querying'); } return; } @@ -723,21 +721,7 @@ class _VideoDetailPageVState extends State null) { handlePlay(); } else { - if (plPlayerController! - .videoPlayerController! - .state - .completed) { - await plPlayerController! - .videoPlayerController! - .seek(Duration.zero); - plPlayerController! - .videoPlayerController! - .play(); - } else { - plPlayerController! - .videoPlayerController! - .playOrPause(); - } + plPlayerController!.onDoubleTapCenter(); } }, behavior: HitTestBehavior.opaque, diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 1b1eccf91..b7efe4bcf 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1273,9 +1273,13 @@ class PlPlayerController with BlockConfigMixin { } } + bool get isCompleted => + videoPlayerController!.state.completed || + durationInMilliseconds - positionInMilliseconds <= 50; + // 双击播放、暂停 Future onDoubleTapCenter() async { - if (!isLive && videoPlayerController!.state.completed) { + if (!isLive && isCompleted) { await videoPlayerController!.seek(Duration.zero); videoPlayerController!.play(); } else {