记住弹幕开关状态

This commit is contained in:
mtvpls
2026-01-07 00:05:34 +08:00
parent 37cc53b166
commit 35dda705cd
2 changed files with 89 additions and 38 deletions

View File

@@ -263,10 +263,13 @@ export function loadDanmakuSettings(): DanmakuSettings {
try {
const saved = localStorage.getItem('danmaku_settings');
let settings = DEFAULT_DANMAKU_SETTINGS;
if (saved) {
const settings = JSON.parse(saved) as DanmakuSettings;
return { ...DEFAULT_DANMAKU_SETTINGS, ...settings };
settings = { ...DEFAULT_DANMAKU_SETTINGS, ...JSON.parse(saved) };
}
return settings;
} catch (error) {
console.error('读取弹幕设置失败:', error);
}
@@ -284,6 +287,31 @@ export function saveDanmakuSettings(settings: DanmakuSettings): void {
}
}
// 保存弹幕显示状态到 localStorage独立的 key
export function saveDanmakuDisplayState(enabled: boolean): void {
if (typeof window === 'undefined') return;
try {
localStorage.setItem('danmaku_display_enabled', String(enabled));
} catch (error) {
console.error('保存弹幕显示状态失败:', error);
}
}
// 读取弹幕显示状态
export function loadDanmakuDisplayState(): boolean | null {
if (typeof window === 'undefined') return null;
try {
const saved = localStorage.getItem('danmaku_display_enabled');
if (saved === null) return null;
return saved === 'true';
} catch (error) {
console.error('读取弹幕显示状态失败:', error);
return null;
}
}
// 记忆上次选择的弹幕
export interface DanmakuMemory {
videoTitle: string;