## 目标 把 AudioManager 从空壳占位升级为真实现,对接 @bgm 装饰器。 ## 范围 - [ ] AudioManager 实现:play(bgm) / stop() / set_volume(vol) / fade(time) - [ ] 三轨分离:BGM(循环)/ SE(单次)/ Voice(语音) - [ ] @bgm call → play / @bgm stop → stop(对接装饰器钩子) - [ ] 音频文件路径解析:相对 chapters/ 目录 - [ ] pygame.mixer 或 QMediaPlayer 选型(PyQt6 优先,减少依赖) - [ ] 音量控制接口(为设置菜单留接口) ## 依赖 无 ## 验收 - @bgm rain.mp3 触发后能听到雨声 - @bgm rain.mp3 (stop) 停止播放 - BGM 播放期间 TextEvt 正常输出不阻塞
目标
把 AudioManager 从空壳占位升级为真实现,对接 @bgm 装饰器。
范围
依赖
无
验收