Godot 麦克风录音示例:四步跑通录音、回放与 WAV 导出
【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects
godot-demo-projects 仓库的 audio/mic_record/ 目录下有一个 Godot 麦克风录音示例:它从麦克风捕获实时输入,格式和采样率可在界面上切换,录完即可回放或保存为标准 WAV 文件。本文用这个示例走一遍完整流程。
🎤 谁需要这个示例
做语音聊天、游戏内音频工具时,最先要验证三件事:麦克风能否读到信号、延迟是否可接受、导出的文件长什么样。这个示例覆盖了录音、回放、保存这条链路,适合先跑通确认效果,再回头看代码弄清原理。
📁 入口与打开方式
全部逻辑写在 MicRecord.gd 中。用 Godot 编辑器打开 MicRecord.tscn,能看到一个带状态栏、三个按钮和三组下拉菜单的界面,直接运行即可。
▶️ 四步跑通录音流程
- 让麦克风开始工作。场景里挂了一个 AudioStreamPlayer,其流是 AudioStreamMicrophone,在 "Record" 总线上自动开始采集;首次运行请允许系统麦克风权限。
- 点击 Record 按钮。按钮文字变成 Stop,状态栏显示 "Status: Recording...",说明数据正在累积。
- 再次点击停止。Play 和 Save WAV To 按钮随即解锁,录音结果以 AudioStreamWAV 对象保存在内存中。
- 回放或保存。Play 会在输出面板打印格式、采样率与字节数并播放;Save 把文件写入 user 目录,默认路径 user://record.wav,点 Open User Folder 可直接打开该目录查看。
⚙️ 录音数据怎么流转
数据流经过三站:AudioStreamMicrophone 采集麦克风信号,送入 default_bus_layout.tres 里定义的 "Record" 总线;该总线上挂了一个 AudioEffectRecord 效果,录音激活期间不断累积音频数据;停止时 get_recording() 返回一个 AudioStreamWAV,脚本对它设置格式与采样率后即可播放或导出。
🎚 格式、采样率与立体声怎么选
- 格式:8 位未压缩文件最小;16 位未压缩音质最好,是默认推荐;IMA ADPCM 压缩到约一半体积,适合传输场景。
- 采样率:提供 11025 Hz 到 48000 Hz 共六档;语音用途 16000 Hz 足够,追求 CD 音质选 44100 Hz,48000 Hz 是专业音频标准。
- 立体声:默认开启;单声道语音录制可关掉以省空间。
🚧 新手容易踩的三个坑
- 别取消 Record 总线的静音。静音是刻意为之:防止麦克风信号送进扬声器形成啸叫,关掉静音前先想清楚后果。
- 改参数会影响当前录音。停止后调整格式、采样率或立体声开关,会同步写入已录好的对象;想对比不同设置,需要重新录几段。
- 找不到保存的文件。文件写在 user:// 对应的系统用户目录,而不是项目文件夹;状态栏会打印真实路径,也可用 Open User Folder 按钮直接打开。
🧩 从示例继续延伸
在 get_data() 返回的 PCM 数据上画波形图是最自然的下一步,也可以再挂一条录音总线做多轨录制,或加个电平表实时监控输入音量。这三类玩法分别对应音频工具、语音应用和游戏内录音功能的常见需求。
在编辑器中打开 MicRecord.tscn,按顺序完成录音、回放、保存,你就拿到一条可用的麦克风录音链路。后续要做波形可视化或多轨录制,直接在这个基础上改即可。
【免费下载链接】godot-demo-projectsDemonstration and Template Projects项目地址: https://gitcode.com/GitHub_Trending/go/godot-demo-projects
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考