From 7b5e695a7beb1cf57af89f5ee2fff2bbac05154d Mon Sep 17 00:00:00 2001 From: orz12 Date: Fri, 12 Jul 2024 23:24:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=9C=AA=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E7=9A=84=E5=88=9D=E5=A7=8B=E6=80=81=EF=BC=9B=E9=BB=91?= =?UTF-8?q?=E5=B1=8F=E5=90=8E=E4=BB=8D=E5=8F=AF=E9=9A=8F=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA=E5=87=BA=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/view.dart | 11 ++++++----- lib/plugin/pl_player/models/play_status.dart | 8 ++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index c250778d0..edaafd5c1 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -46,7 +46,7 @@ class _VideoDetailPageState extends State late BangumiIntroController bangumiIntroController; late String heroTag; - PlayerStatus playerStatus = PlayerStatus.playing; + Rx playerStatus = PlayerStatus.none.obs; double doubleOffset = 0; final Box localCache = GStorage.localCache; @@ -157,7 +157,7 @@ class _VideoDetailPageState extends State // 播放器状态监听 void playerListener(PlayerStatus? status) async { - playerStatus = status!; + playerStatus.value = status!; if (status == PlayerStatus.completed) { shutdownTimerService.handleWaitingFinished(); bool notExitFlag = false; @@ -387,12 +387,13 @@ class _VideoDetailPageState extends State Widget plPlayer = FutureBuilder( future: _futureBuilderFuture, builder: (BuildContext context, AsyncSnapshot snapshot) { - if (snapshot.hasData && snapshot.data['status']) { + if (snapshot.connectionState == ConnectionState.done) { return Obx( () => !videoDetailController.autoPlay.value || plPlayerController == null || - plPlayerController!.videoController == null - ? nil + plPlayerController!.videoController == null || + playerStatus.value == PlayerStatus.none + ? Text(playerStatus.value.toString()) : PLVideoPlayer( controller: plPlayerController!, videoIntroController: diff --git a/lib/plugin/pl_player/models/play_status.dart b/lib/plugin/pl_player/models/play_status.dart index 2af09a61d..47c5e69b6 100644 --- a/lib/plugin/pl_player/models/play_status.dart +++ b/lib/plugin/pl_player/models/play_status.dart @@ -1,9 +1,13 @@ import 'package:get/get.dart'; -enum PlayerStatus { completed, playing, paused } +enum PlayerStatus { completed, playing, paused, none } class PlPlayerStatus { - Rx status = Rx(PlayerStatus.paused); + Rx status = Rx(PlayerStatus.none); + + bool get none { + return status.value == PlayerStatus.none; + } bool get playing { return status.value == PlayerStatus.playing;