From 47e3cf46e46b614fca9d6258f6d4341619f34e7f Mon Sep 17 00:00:00 2001 From: guozhigq Date: Tue, 3 Oct 2023 22:12:11 +0800 Subject: [PATCH 1/4] =?UTF-8?q?fix:=20=E5=80=8D=E9=80=9F=E6=9C=AA=E8=BF=98?= =?UTF-8?q?=E5=8E=9F=E3=80=81=E4=B8=8A=E4=B8=80=E8=A7=86=E9=A2=91=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=AE=B0=E5=BF=86=E6=92=AD=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/view.dart | 1 + lib/plugin/pl_player/controller.dart | 2 ++ 2 files changed, 3 insertions(+) diff --git a/lib/pages/video/detail/view.dart b/lib/pages/video/detail/view.dart index 048876d6..77c33613 100644 --- a/lib/pages/video/detail/view.dart +++ b/lib/pages/video/detail/view.dart @@ -165,6 +165,7 @@ class _VideoDetailPageState extends State videoIntroController.isPaused = false; if (_extendNestCtr.position.pixels == 0 && autoplay) { await Future.delayed(const Duration(milliseconds: 300)); + plPlayerController!.seekTo(videoDetailController.defaultST); plPlayerController?.play(); } plPlayerController?.addStatusLister(playerListener); diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 01476ade..184d5789 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -418,6 +418,8 @@ class PlPlayerController { // 设置倍速 if (_playbackSpeed.value != 1.0) { await setPlaybackSpeed(_playbackSpeed.value); + } else { + await setPlaybackSpeed(1.0); } // if (_looping) { From 7576f39010a6cd5530efe27821957e1fd2ee2afe Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 8 Oct 2023 23:24:22 +0800 Subject: [PATCH 2/4] =?UTF-8?q?mod:=20=E5=BC=B9=E5=B9=95=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/pages/video/detail/widgets/header_control.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 1697b4d4..c2a9e808 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -676,9 +676,9 @@ class _HeaderControlState extends State { ), child: Slider( min: 1, - max: 6, + max: 8, value: danmakuSpeedVal, - divisions: 10, + divisions: 14, label: danmakuSpeedVal.toString(), onChanged: (double val) { danmakuSpeedVal = val; From ec58d060bf13a4dc88f08f9f37092174efb19eb8 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Sun, 8 Oct 2023 23:39:21 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix:=20=E6=BB=91=E5=8A=A8=E5=BF=AB=E8=BF=9B?= =?UTF-8?q?=E8=BF=87=E5=BF=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugin/pl_player/view.dart | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 2a8311a5..1ee00668 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -478,19 +478,20 @@ class _PLVideoPlayerState extends State return; } final tapPosition = details.localPosition.dx; - int curSliderPosition = _.sliderPosition.value.inSeconds; + double scale = 60 / MediaQuery.of(context).size.width; + int curSliderPosition = _.sliderPosition.value.inMilliseconds; late int result; if (tapPosition - _initTapPositoin > 0) { // 快进 /// TODO 优化屏幕越小效果越明显 - result = (curSliderPosition + 1) - .clamp(0, _.duration.value.inSeconds); + result = (curSliderPosition + (500 * scale).toInt()) + .clamp(0, _.duration.value.inMilliseconds); } else { // 快退 - result = (curSliderPosition - 1) - .clamp(0, _.duration.value.inSeconds); + result = (curSliderPosition - (500 * scale).toInt()) + .clamp(0, _.duration.value.inMilliseconds); } - _.onUodatedSliderProgress(Duration(seconds: result)); + _.onUodatedSliderProgress(Duration(milliseconds: result)); _.onChangedSliderStart(); _initTapPositoin = tapPosition; }, From 85e86f1d614ad098bbe0f2857524d5306f017099 Mon Sep 17 00:00:00 2001 From: guozhigq Date: Mon, 9 Oct 2023 08:24:07 +0800 Subject: [PATCH 4/4] =?UTF-8?q?mod:=20=E4=BC=98=E5=8C=96=E5=BF=AB=E8=BF=9B?= =?UTF-8?q?=E6=89=8B=E5=8A=BF=E9=98=88=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/plugin/pl_player/view.dart | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/lib/plugin/pl_player/view.dart b/lib/plugin/pl_player/view.dart index 1ee00668..deb73696 100644 --- a/lib/plugin/pl_player/view.dart +++ b/lib/plugin/pl_player/view.dart @@ -478,20 +478,13 @@ class _PLVideoPlayerState extends State return; } final tapPosition = details.localPosition.dx; - double scale = 60 / MediaQuery.of(context).size.width; int curSliderPosition = _.sliderPosition.value.inMilliseconds; - late int result; - if (tapPosition - _initTapPositoin > 0) { - // 快进 - /// TODO 优化屏幕越小效果越明显 - result = (curSliderPosition + (500 * scale).toInt()) - .clamp(0, _.duration.value.inMilliseconds); - } else { - // 快退 - result = (curSliderPosition - (500 * scale).toInt()) - .clamp(0, _.duration.value.inMilliseconds); - } - _.onUodatedSliderProgress(Duration(milliseconds: result)); + double scale = 60000 / MediaQuery.of(context).size.width; + Duration pos = Duration( + milliseconds: + curSliderPosition + (details.delta.dx * scale).round()); + Duration result = pos.clamp(Duration.zero, _.duration.value); + _.onUodatedSliderProgress(result); _.onChangedSliderStart(); _initTapPositoin = tapPosition; },