diff --git a/lib/pages/video/detail/widgets/header_control.dart b/lib/pages/video/detail/widgets/header_control.dart index 149d651d..3b29c74e 100644 --- a/lib/pages/video/detail/widgets/header_control.dart +++ b/lib/pages/video/detail/widgets/header_control.dart @@ -746,6 +746,7 @@ class _HeaderControlState extends State { blockTypes.add(i['value']); } widget.controller!.blockTypes = blockTypes; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption currentOption = @@ -778,6 +779,7 @@ class _HeaderControlState extends State { onTap: () { showArea = i['value']; widget.controller!.showArea = showArea; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption currentOption = @@ -821,6 +823,7 @@ class _HeaderControlState extends State { onChanged: (double val) { opacityVal = val; widget.controller!.opacityVal = opacityVal; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption currentOption = @@ -859,6 +862,7 @@ class _HeaderControlState extends State { onChanged: (double val) { strokeWidth = val; widget.controller!.strokeWidth = val; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption currentOption = @@ -897,6 +901,7 @@ class _HeaderControlState extends State { onChanged: (double val) { fontSizeVal = val; widget.controller!.fontSizeVal = fontSizeVal; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption currentOption = @@ -938,6 +943,7 @@ class _HeaderControlState extends State { danmakuDurationVal = (val * val).toPrecision(2); widget.controller!.danmakuDurationVal = danmakuDurationVal; + widget.controller?.putDanmakuSettings(); setState(() {}); try { final DanmakuOption updatedOption = diff --git a/lib/plugin/pl_player/controller.dart b/lib/plugin/pl_player/controller.dart index 515661bf..4a177342 100644 --- a/lib/plugin/pl_player/controller.dart +++ b/lib/plugin/pl_player/controller.dart @@ -1081,6 +1081,15 @@ class PlPlayerController { videoStorage.put(VideoBoxKey.playRepeat, type.value); } + void putDanmakuSettings() { + localCache.put(LocalCacheKey.danmakuBlockType, blockTypes); + localCache.put(LocalCacheKey.danmakuShowArea, showArea); + localCache.put(LocalCacheKey.danmakuOpacity, opacityVal); + localCache.put(LocalCacheKey.danmakuFontScale, fontSizeVal); + localCache.put(LocalCacheKey.danmakuDuration, danmakuDurationVal); + localCache.put(LocalCacheKey.strokeWidth, strokeWidth); + } + Future dispose({String type = 'single'}) async { // 每次减1,最后销毁 if (type == 'single' && playerCount.value > 1) { @@ -1109,13 +1118,6 @@ class PlPlayerController { // playerStatus.status.close(); // dataStatus.status.close(); - /// 缓存本次弹幕选项 - localCache.put(LocalCacheKey.danmakuBlockType, blockTypes); - localCache.put(LocalCacheKey.danmakuShowArea, showArea); - localCache.put(LocalCacheKey.danmakuOpacity, opacityVal); - localCache.put(LocalCacheKey.danmakuFontScale, fontSizeVal); - localCache.put(LocalCacheKey.danmakuDuration, danmakuDurationVal); - localCache.put(LocalCacheKey.strokeWidth, strokeWidth); if (_videoPlayerController != null) { var pp = _videoPlayerController!.platform as NativePlayer; await pp.setProperty('audio-files', '');