mod: 立即保存弹幕选项

This commit is contained in:
orz12
2024-03-06 19:18:47 +08:00
parent f6d04b929d
commit 6f4ea3c428
2 changed files with 15 additions and 7 deletions

View File

@@ -746,6 +746,7 @@ class _HeaderControlState extends State<HeaderControl> {
blockTypes.add(i['value']); blockTypes.add(i['value']);
} }
widget.controller!.blockTypes = blockTypes; widget.controller!.blockTypes = blockTypes;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption currentOption = final DanmakuOption currentOption =
@@ -778,6 +779,7 @@ class _HeaderControlState extends State<HeaderControl> {
onTap: () { onTap: () {
showArea = i['value']; showArea = i['value'];
widget.controller!.showArea = showArea; widget.controller!.showArea = showArea;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption currentOption = final DanmakuOption currentOption =
@@ -821,6 +823,7 @@ class _HeaderControlState extends State<HeaderControl> {
onChanged: (double val) { onChanged: (double val) {
opacityVal = val; opacityVal = val;
widget.controller!.opacityVal = opacityVal; widget.controller!.opacityVal = opacityVal;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption currentOption = final DanmakuOption currentOption =
@@ -859,6 +862,7 @@ class _HeaderControlState extends State<HeaderControl> {
onChanged: (double val) { onChanged: (double val) {
strokeWidth = val; strokeWidth = val;
widget.controller!.strokeWidth = val; widget.controller!.strokeWidth = val;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption currentOption = final DanmakuOption currentOption =
@@ -897,6 +901,7 @@ class _HeaderControlState extends State<HeaderControl> {
onChanged: (double val) { onChanged: (double val) {
fontSizeVal = val; fontSizeVal = val;
widget.controller!.fontSizeVal = fontSizeVal; widget.controller!.fontSizeVal = fontSizeVal;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption currentOption = final DanmakuOption currentOption =
@@ -938,6 +943,7 @@ class _HeaderControlState extends State<HeaderControl> {
danmakuDurationVal = (val * val).toPrecision(2); danmakuDurationVal = (val * val).toPrecision(2);
widget.controller!.danmakuDurationVal = widget.controller!.danmakuDurationVal =
danmakuDurationVal; danmakuDurationVal;
widget.controller?.putDanmakuSettings();
setState(() {}); setState(() {});
try { try {
final DanmakuOption updatedOption = final DanmakuOption updatedOption =

View File

@@ -1081,6 +1081,15 @@ class PlPlayerController {
videoStorage.put(VideoBoxKey.playRepeat, type.value); 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<void> dispose({String type = 'single'}) async { Future<void> dispose({String type = 'single'}) async {
// 每次减1最后销毁 // 每次减1最后销毁
if (type == 'single' && playerCount.value > 1) { if (type == 'single' && playerCount.value > 1) {
@@ -1109,13 +1118,6 @@ class PlPlayerController {
// playerStatus.status.close(); // playerStatus.status.close();
// dataStatus.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) { if (_videoPlayerController != null) {
var pp = _videoPlayerController!.platform as NativePlayer; var pp = _videoPlayerController!.platform as NativePlayer;
await pp.setProperty('audio-files', ''); await pp.setProperty('audio-files', '');