- components: 修复英文标题为中文,添加缺失组件文档 - 新增 camera-component, light-component, audio-source-component, audio-listener-component 类总览 - 修复 get-position.md 格式 - 更新 components.md 模块总览 - scene: 修复方法文档格式,新增缺失方法 - 修复 find.md, create-game-object.md 英文标题 - 新增 FindByID, SerializeToString, DeserializeFromString 方法文档 - 更新 scene.md 类总览方法列表
70 lines
2.3 KiB
Markdown
70 lines
2.3 KiB
Markdown
# WindowsAudioBackend
|
||
|
||
**命名空间**: `XCEngine::Audio::WASAPI`
|
||
|
||
**类型**: `class`
|
||
|
||
**头文件**: `XCEngine/Audio/WindowsAudioBackend.h`
|
||
|
||
**描述**: Windows 平台音频后端实现,使用 Windows MultiMedia API (waveXxx 函数)。
|
||
|
||
## 概述
|
||
|
||
WindowsAudioBackend 是基于 Windows MultiMedia API 的音频后端实现,通过 waveXxx 函数提供音频输出能力。它运行在单独的音频线程上,使用双缓冲区交换机制实现流畅的音频播放,支持设备枚举、音量控制和静音管理。
|
||
|
||
该后端与 WASAPIBackend 类似,但使用更底层的 waveOut API 而非 WASAPI COM 接口,具有更好的兼容性和更低的依赖要求。
|
||
|
||
## 公共方法
|
||
|
||
| 方法 | 描述 |
|
||
|------|------|
|
||
| `WindowsAudioBackend` | 构造函数 |
|
||
| `~WindowsAudioBackend` | 析构函数,关闭音频设备并清理资源 |
|
||
| `Initialize` | 初始化音频后端和设备 |
|
||
| `Shutdown` | 关闭音频后端并释放资源 |
|
||
| `GetDeviceName` | 获取当前音频设备名称 |
|
||
| `GetAvailableDevices` | 获取系统可用音频设备列表 |
|
||
| `SetDevice` | 设置音频输出设备 |
|
||
| `GetMasterVolume` | 获取主音量(0.0-1.0) |
|
||
| `SetMasterVolume` | 设置主音量(0.0-1.0) |
|
||
| `IsMuted` | 检查静音状态 |
|
||
| `SetMuted` | 设置静音状态 |
|
||
| `Start` | 启动音频处理线程 |
|
||
| `Stop` | 停止音频处理线程 |
|
||
| `Suspend` | 暂停音频处理 |
|
||
| `Resume` | 恢复音频处理 |
|
||
| `ProcessAudio` | 处理音频数据到输出缓冲区 |
|
||
| `IsRunning` | 检查音频线程是否正在运行 |
|
||
| `GetConfig` | 获取当前音频配置 |
|
||
|
||
## 使用示例
|
||
|
||
```cpp
|
||
#include <XCEngine/Audio/AudioSystem.h>
|
||
#include <XCEngine/Audio/WindowsAudioBackend.h>
|
||
|
||
using namespace XCEngine::Audio;
|
||
|
||
void SetupAudioWithWindowsBackend() {
|
||
// 创建 Windows 音频后端
|
||
auto backend = std::make_unique<WASAPI::WindowsAudioBackend>();
|
||
|
||
// 设置到音频系统
|
||
AudioSystem::Get().SetBackend(std::move(backend));
|
||
|
||
// 初始化配置
|
||
AudioConfig config;
|
||
config.sampleRate = 48000;
|
||
config.channels = 2;
|
||
config.bufferSize = 512;
|
||
|
||
AudioSystem::Get().Initialize(config);
|
||
}
|
||
```
|
||
|
||
## 相关文档
|
||
|
||
- [Audio 模块总览](../audio.md) - Audio 模块总览
|
||
- [IAudioBackend](../i-audio-backend/i-audio-backend.md) - 音频后端接口
|
||
- [WASAPIBackend](../wasapi-backend/wasapi-backend.md) - WASAPI 后端实现
|