Files
XCEngine/docs/api/audio/windows-audio-backend/windows-audio-backend.md
ssdfasd f5a34f8adc docs: 重构 API 文档 - components 和 scene 模块
- 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 类总览方法列表
2026-03-26 01:50:27 +08:00

70 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 后端实现