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

2.3 KiB
Raw Blame History

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 获取当前音频配置

使用示例

#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);
}

相关文档