From 88e6eb607ce926ab5fa367a9b7e52fa1540b5e23 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sat, 21 Oct 2023 22:40:05 +0800 Subject: [PATCH] =?UTF-8?q?mod:=20=E6=92=AD=E6=94=BE=E9=80=9F=E5=BA=A6?= =?UTF-8?q?=E8=B0=83=E8=8A=82=E4=BC=98=E5=8C=96=20issues=20#201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../video/detail/widgets/header_control.dart | 18 +++++++++++++----- lib/plugin/pl_player/controller.dart | 13 ++++++++++++- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 85adfc25..a6f98d4a 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -197,12 +197,20 @@ class _HeaderControlState extends State { for (var i in speedsList) ...[ if (i == currentSpeed) ...[ FilledButton( - onPressed: () => {setState(() => currentSpeed = i)}, + onPressed: () async { + // setState(() => currentSpeed = i), + await widget.controller!.setPlaybackSpeed(i); + SmartDialog.dismiss(); + }, child: Text(i.toString()), ), ] else ...[ FilledButton.tonal( - onPressed: () => {setState(() => currentSpeed = i)}, + onPressed: () async { + // setState(() => currentSpeed = i), + await widget.controller!.setPlaybackSpeed(i); + SmartDialog.dismiss(); + }, child: Text(i.toString()), ), ] @@ -220,10 +228,10 @@ class _HeaderControlState extends State { ), TextButton( onPressed: () async { - await SmartDialog.dismiss(); - widget.controller!.setPlaybackSpeed(currentSpeed); + await widget.controller!.setDefaultSpeed(); + SmartDialog.dismiss(); }, - child: const Text('确定'), + child: const Text('默认速度'), ), ], ); diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index dd097212..c5d515a2 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -585,7 +585,17 @@ class PlPlayerController { danmakuController!.updateOption(updatedOption); } catch (_) {} // fix 长按倍速后放开不恢复 - // _playbackSpeed.value = speed; + if (!doubleSpeedStatus.value) { + _playbackSpeed.value = speed; + } + } + + // 还原默认速度 + Future setDefaultSpeed() async { + double speed = + videoStorage.get(VideoBoxKey.playSpeedDefault, defaultValue: 1.0); + await _videoPlayerController?.setRate(speed); + _playbackSpeed.value = speed; } /// 设置倍速 @@ -796,6 +806,7 @@ class PlPlayerController { if (val) { setPlaybackSpeed(longPressSpeed); } else { + print(playbackSpeed); setPlaybackSpeed(playbackSpeed); } }