# 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 #include using namespace XCEngine::Audio; void SetupAudioWithWindowsBackend() { // 创建 Windows 音频后端 auto backend = std::make_unique(); // 设置到音频系统 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 后端实现