根本原因:管理员进房特效在 800ms 后自动触发, 此时用户尚未与新页面交互,浏览器的 AudioContext 处于 suspended 状态,之前代码同步调用 resume() 但未 await 其 Promise,导致音频节点创建后无法出声。 修复方式: - play() 和 ding() 均改为先检查 ctx.state - 若为 suspended,用 ctx.resume().then(...) 链式执行 - resolver 成功后真正创建音频节点并播放 - 若浏览器拒绝 resume(无用户手势),catch 静默处理 此修复使所有自动触发的音效(进房烟花、任命公告等) 在 AudioContext 未激活时也能正确播放。