SuperAPI AI 工具集

game-audio

编程与开发

查看项目

更新于 10-16 08:06

技能介绍

用途:为浏览器游戏添加程序化背景音乐(BGM 循环音序器)与一次性音效(SFX),全部基于浏览器内置的 Web Audio API,无需外部音频文件或 npm 包。

主要能力:BGM 由 Web Audio API 音序器驱动,音乐以音符数组形式编写;SFX 使用一次性振荡器加增益与滤波器合成;振荡器类型包括 square、triangle、sawtooth、sine;效果节点包括 GainNode、BiquadFilterNode、ConvolverNode、DelayNode;支持静音状态管理与 localStorage 持久化;通过 EventBus 事件接线播放。

建议文件结构:src/audio/AudioManager.js(AudioContext 初始化、BGM 音序器、播放/停止)、AudioBridge.js(EventBus 到音频播放的接线)、music.js(BGM 音符数组)、sfx.js(一次性振荡器加增益与滤波器)。

使用方式:在首次用户点击时发出 AUDIO_INIT 初始化 AudioContext(浏览器自动播放策略要求);在场景切换时发出 MUSIC_GAMEPLAY、MUSIC_GAMEOVER、MUSIC_STOP;添加静音切换(AUDIO_TOGGLE_MUTE 事件、UI 按钮、M 键快捷键);在 main.js 中接入 initAudioBridge()。音序器采用前瞻调度(提前约 100ms 调度,每 25ms 检查一次)以保证时序稳定。

限制:AudioContext 必须在用户点击或触摸后创建/恢复;所有音频需经统一 GainNode 以便静音;SFX 立即触发无调度延迟;如需更丰富的程序化 BGM,可选安装 @strudel/web(npm install @strudel/web),但 Strudel 采用 AGPL-3.0 许可,使用它的项目须开源,且仅用于 BGM,SFX 仍直接使用 Web Audio API。详细音序器函数、SFX 预设、静音按钮实现与混音指南见同目录参考文件。其他具体平台与价格信息暂未提供。