From faaf416bf0da475001baca8e0e294b0ce08f0abb Mon Sep 17 00:00:00 2001 From: orz12 Date: Wed, 20 Dec 2023 13:49:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=9F=E4=B8=80=E5=BC=B9=E5=B9=95?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=AE=A1=E7=AE=97=E6=96=B9=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?speed=E6=94=B9=E4=B8=BAduration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 1 + lib/pages/danmaku/view.dart | 11 ++++++----- .../video/detail/widgets/header_control.dart | 18 +++++++++--------- lib/plugin/pl_player/controller.dart | 10 +++++----- lib/utils/storage.dart | 4 ++-- 5 files changed, 23 insertions(+), 21 deletions(-) diff --git a/android/app/build.gradle b/android/app/build.gradle index 06845daf..1198b6fc 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -63,6 +63,7 @@ android { versionCode flutterVersionCode.toInteger() versionName flutterVersionName minSdkVersion 19 + multiDexEnabled true } signingConfigs { diff --git a/lib/pages/danmaku/view.dart b/lib/pages/danmaku/view.dart index dd7558d5..1ff7677c 100644 --- a/lib/pages/danmaku/view.dart +++ b/lib/pages/danmaku/view.dart @@ -34,7 +34,7 @@ class _PlDanmakuState extends State { late double showArea; late double opacityVal; late double fontSizeVal; - late double danmakuSpeedVal; + late double danmakuDurationVal; @override void initState() { @@ -68,7 +68,7 @@ class _PlDanmakuState extends State { showArea = playerController.showArea; opacityVal = playerController.opacityVal; fontSizeVal = playerController.fontSizeVal; - danmakuSpeedVal = playerController.danmakuSpeedVal; + danmakuDurationVal = playerController.danmakuDurationVal; } // 播放器状态监听 @@ -156,7 +156,7 @@ class _PlDanmakuState extends State { @override Widget build(BuildContext context) { return LayoutBuilder(builder: (context, box) { - double initDuration = box.maxWidth / 12; + // double initDuration = box.maxWidth / 12; return Obx( () => AnimatedOpacity( opacity: playerController.isOpenDanmu.value ? 1 : 0, @@ -172,8 +172,9 @@ class _PlDanmakuState extends State { hideTop: blockTypes.contains(5), hideScroll: blockTypes.contains(2), hideBottom: blockTypes.contains(4), - duration: initDuration / - (danmakuSpeedVal * widget.playerController.playbackSpeed), + duration: danmakuDurationVal / widget.playerController.playbackSpeed, + // initDuration / + // (danmakuSpeedVal * widget.playerController.playbackSpeed), ), statusChanged: (isPlaying) {}, ), diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 5c2491a0..fc9f9b0a 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -585,7 +585,7 @@ class _HeaderControlState extends State { // 字体大小 double fontSizeVal = widget.controller!.fontSizeVal; // 弹幕速度 - double danmakuSpeedVal = widget.controller!.danmakuSpeedVal; + double danmakuDurationVal = widget.controller!.danmakuDurationVal; DanmakuController danmakuController = widget.controller!.danmakuController!; await showModalBottomSheet( @@ -755,7 +755,7 @@ class _HeaderControlState extends State { ), ), ), - Text('弹幕时长 ${danmakuSpeedVal.toString()}'), + Text('弹幕时长 ${danmakuDurationVal.toString()}'), Padding( padding: const EdgeInsets.only( top: 0, @@ -773,14 +773,14 @@ class _HeaderControlState extends State { enabledThumbRadius: 6.0), ), child: Slider( - min: 1, - max: 8, - value: danmakuSpeedVal, - divisions: 14, - label: danmakuSpeedVal.toString(), + min: 2, + max: 16, + value: danmakuDurationVal, + divisions: 28, + label: danmakuDurationVal.toString(), onChanged: (double val) { - danmakuSpeedVal = val; - widget.controller!.danmakuSpeedVal = danmakuSpeedVal; + danmakuDurationVal = val; + widget.controller!.danmakuDurationVal = danmakuDurationVal; setState(() {}); try { DanmakuOption currentOption = diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index ff3857ba..6e4aa93b 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -221,7 +221,7 @@ class PlPlayerController { late double showArea; late double opacityVal; late double fontSizeVal; - late double danmakuSpeedVal; + late double danmakuDurationVal; late List speedsList; // 缓存 double? defaultDuration; @@ -268,9 +268,9 @@ class PlPlayerController { // 字体大小 fontSizeVal = localCache.get(LocalCacheKey.danmakuFontScale, defaultValue: 1.0); - // 弹幕速度 - danmakuSpeedVal = - localCache.get(LocalCacheKey.danmakuSpeed, defaultValue: 4.0); + // 弹幕时间 + danmakuDurationVal = + localCache.get(LocalCacheKey.danmakuDuration, defaultValue: 4.0); playRepeat = PlayRepeat.values.toList().firstWhere( (e) => e.value == @@ -1097,7 +1097,7 @@ class PlPlayerController { localCache.put(LocalCacheKey.danmakuShowArea, showArea); localCache.put(LocalCacheKey.danmakuOpacity, opacityVal); localCache.put(LocalCacheKey.danmakuFontScale, fontSizeVal); - localCache.put(LocalCacheKey.danmakuSpeed, danmakuSpeedVal); + localCache.put(LocalCacheKey.danmakuDuration, danmakuDurationVal); var pp = _videoPlayerController!.platform as NativePlayer; await pp.setProperty('audio-files', ''); diff --git a/lib/utils/storage.dart b/lib/utils/storage.dart index 3f187638..44cb162a 100644 --- a/lib/utils/storage.dart +++ b/lib/utils/storage.dart @@ -154,12 +154,12 @@ class LocalCacheKey { static const String wbiKeys = 'wbiKeys'; static const String timeStamp = 'timeStamp'; - // 弹幕相关设置 屏蔽类型 显示区域 透明度 字体大小 弹幕速度 + // 弹幕相关设置 屏蔽类型 显示区域 透明度 字体大小 弹幕时间 static const String danmakuBlockType = 'danmakuBlockType'; static const String danmakuShowArea = 'danmakuShowArea'; static const String danmakuOpacity = 'danmakuOpacity'; static const String danmakuFontScale = 'danmakuFontScale'; - static const String danmakuSpeed = 'danmakuSpeed'; + static const String danmakuDuration = 'danmakuDuration'; // 代理host port static const String systemProxyHost = 'systemProxyHost';