Files
XCEngine/docs/api/XCEngine/Audio/AudioConfig/AudioConfig.md

49 lines
1.8 KiB
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# AudioConfig
**命名空间**: `XCEngine::Audio`
**类型**: `struct`
**头文件**: `XCEngine/Audio/AudioConfig.h`
2026-03-27 19:18:53 +08:00
**描述**: 描述音频输出设备初始化时使用的基础采样格式和缓冲配置。
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
## 角色概述
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
`AudioConfig` 是音频系统和平台后端之间共享的配置载体。它主要回答三个问题:
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
- 采样格式是什么
- 输出声道布局是什么
- 缓冲区如何组织
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
当前最直接的使用点是 [AudioSystem::Initialize](../AudioSystem/Initialize.md) 和 [WASAPIBackend](../WindowsAudioBackend/WindowsAudioBackend.md) 的初始化流程。
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
## 字段说明
2026-03-26 16:45:24 +08:00
2026-03-27 19:18:53 +08:00
- `sampleRate`
说明: 默认 `48000`,当前内建后端会把它写入 `WAVEFORMATEX`
- `channels`
说明: 默认 `2`,当前主链路主要按立体声思路实现。
- `bitsPerSample`
说明: 默认 `16`Windows 后端最终输出也会转成 `int16`
- `speakerMode`
说明: 逻辑层面的声道模式描述,默认 `Stereo`
- `bufferSize`
说明: 默认 `8192`,当前 `AudioSystem::Update()` 和后端缓冲逻辑都会读取它,但“按帧数还是按样本数”这一语义在现有实现里还不够统一。
- `bufferCount`
说明: 默认 `2`,当前更像配置预留字段,没有在已取证的主链路里形成完整策略分支。
## 当前实现限制
- 当前公开字段已经足够表达基础 PCM 输出格式,但还没有更完整的设备能力协商层。
- `bufferSize``AudioSystem` 和内建 Windows 后端里的使用语义存在一定模糊性,文档不把它写成严格稳定契约。
- `bufferCount` 当前没有看到明显的运行时消费点。
2026-03-26 16:45:24 +08:00
## 相关文档
2026-03-27 19:18:53 +08:00
- [当前模块](../Audio.md)
- [AudioSystem](../AudioSystem/AudioSystem.md)
- [IAudioBackend](../IAudioBackend/IAudioBackend.md)
- [WASAPIBackend](../WindowsAudioBackend/WindowsAudioBackend.md)
- [API 总索引](../../../main.md)