功能:特效音效三项优化 + 禁音开关
音效改进(effect-sounds.js):
1. 雷电 - 三层合成更贴近真实:
①放电啪声(带通噪声 ~50ms)
②低频轰鸣(120→38Hz 扫频,快冲击 2s 衰减)
③极低频滚动余韵(55→22Hz,缓慢堆积 3.6s 长衰减)
2. 下雨 - 音量 0.40→0.15,时长与视觉效果统一(8000ms)
3. 下雪 - 移除风声,只保留五声音阶铃音(C/E/G/C)
铃音加第二泛音(×2.76倍频)模拟真实铃铛共鸣感
8次随机铃声分布在 10 秒内
禁音开关:
- input-bar.blade.php:悄悄话旁新增「🔇 禁音」复选框
- scripts.blade.php:toggleSoundMute() 函数,
localStorage chat_sound_muted 持久化,
DOMContentLoaded 恢复复选框状态
- effect-sounds.js:play() 先检查 chat_sound_muted 标志
This commit is contained in:
@@ -1105,8 +1105,28 @@
|
||||
if (saved) {
|
||||
applyFontSize(saved);
|
||||
}
|
||||
// 恢复禁音复选框状态
|
||||
const muted = localStorage.getItem('chat_sound_muted') === '1';
|
||||
const muteChk = document.getElementById('sound_muted');
|
||||
if (muteChk) muteChk.checked = muted;
|
||||
});
|
||||
|
||||
// ── 特效禁音开关 ─────────────────────────────────────────────────
|
||||
/**
|
||||
* 切换特效音效的静音状态,持久化到 localStorage。
|
||||
* 开启禁音后立即停止当前正在播放的音效。
|
||||
*
|
||||
* @param {boolean} muted true = 禁音,false = 开启声音
|
||||
*/
|
||||
function toggleSoundMute(muted) {
|
||||
localStorage.setItem('chat_sound_muted', muted ? '1' : '0');
|
||||
if (muted && typeof EffectSounds !== 'undefined') {
|
||||
EffectSounds.stop(); // 立即停止当前音效
|
||||
}
|
||||
}
|
||||
window.toggleSoundMute = toggleSoundMute;
|
||||
|
||||
|
||||
// ── 发送消息(Enter 发送,防 IME 输入法重复触发)────────
|
||||
// 用 isComposing 标记中文输入法的组词状态,组词期间过滤掉 Enter
|
||||
let _imeComposing = false;
|
||||
|
||||
Reference in New Issue
Block a user