docs: 添加 Audio 模块和 Components 模块 API 文档
- 新增 Audio 模块文档 (54 个文件) - AudioSystem 单例类及 20 个方法页 - AudioMixer 混音器类及 11 个方法页 - IAudioBackend、IAudioEffect 接口 - FFTFilter、Reverbation、Equalizer、HRTF 效果类 - WASAPIBackend Windows 后端 - AudioConfig、Audio3DParams 等结构体 - 9 个枚举类型文档 - 新增 Components 模块文档 (3 个文件) - AudioSourceComponent 音频源组件 - AudioListenerComponent 音频监听器组件 - 更新 docs/api/main.md 添加模块导航
This commit is contained in:
88
docs/api/audio/audio-system/audio-system.md
Normal file
88
docs/api/audio/audio-system/audio-system.md
Normal file
@@ -0,0 +1,88 @@
|
||||
# AudioSystem
|
||||
|
||||
**命名空间**: `XCEngine::Audio`
|
||||
|
||||
**类型**: `class (singleton)`
|
||||
|
||||
**头文件**: `XCEngine/Audio/AudioSystem.h`
|
||||
|
||||
**描述**: 音频系统单例,管理所有音频源、音频后端和监听器状态。
|
||||
|
||||
## 概述
|
||||
|
||||
AudioSystem 是 XCEngine 音频模块的核心单例类,负责管理整个音频子系统的生命周期。它维护音频监听器(listener)的 3D 变换和速度信息,注册和管理所有活动的音频源(AudioSourceComponent),并通过配置的 IAudioBackend 实现进行实际的音频输出。AudioSystem 每帧调用 Update 方法处理音频源的 3D 空间化计算和混音。
|
||||
|
||||
## 单例访问
|
||||
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| `static AudioSystem& Get()` | 获取音频系统单例实例 |
|
||||
|
||||
## 公共方法
|
||||
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| [`Initialize`](initialize.md) | 初始化音频系统 |
|
||||
| [`Shutdown`](shutdown.md) | 关闭音频系统 |
|
||||
| [`Update`](update.md) | 每帧更新音频系统状态 |
|
||||
| [`SetBackend`](set-backend.md) | 设置音频后端实现 |
|
||||
| [`GetBackend`](get-backend.md) | 获取当前音频后端 |
|
||||
| [`GetCurrentDevice`](get-current-device.md) | 获取当前音频设备名称 |
|
||||
| [`SetDevice`](set-device.md) | 设置音频设备 |
|
||||
| [`GetAvailableDevices`](get-available-devices.md) | 获取可用音频设备列表 |
|
||||
| [`GetMasterVolume`](get-master-volume.md) | 获取主音量 |
|
||||
| [`SetMasterVolume`](set-master-volume.md) | 设置主音量 |
|
||||
| [`IsMuted`](is-muted.md) | 检查是否静音 |
|
||||
| [`SetMuted`](set-muted.md) | 设置静音状态 |
|
||||
| [`ProcessAudio`](process-audio.md) | 处理音频数据 |
|
||||
| [`SetListenerTransform`](set-listener-transform.md) | 设置监听器变换 |
|
||||
| [`SetListenerVelocity`](set-listener-velocity.md) | 设置监听器速度 |
|
||||
| [`GetListenerPosition`](get-listener-position.md) | 获取监听器位置 |
|
||||
| [`GetListenerRotation`](get-listener-rotation.md) | 获取监听器旋转 |
|
||||
| [`GetListenerVelocity`](get-listener-velocity.md) | 获取监听器速度 |
|
||||
| [`RegisterSource`](register-source.md) | 注册音频源 |
|
||||
| [`UnregisterSource`](unregister-source.md) | 注销音频源 |
|
||||
| [`GetStats`](get-stats.md) | 获取音频系统统计信息 |
|
||||
|
||||
## 内部方法
|
||||
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| `ProcessSource()` | 处理单个音频源的音频数据(私有) |
|
||||
|
||||
## 使用示例
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
#include <XCEngine/Audio/WASAPI/WASAPIBackend.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void SetupAudio() {
|
||||
AudioConfig config;
|
||||
config.sampleRate = 48000;
|
||||
config.channels = 2;
|
||||
config.bitsPerSample = 16;
|
||||
config.speakerMode = SpeakerMode::Stereo;
|
||||
|
||||
AudioSystem::Get().SetBackend(std::make_unique<WASAPIBackend>());
|
||||
AudioSystem::Get().Initialize(config);
|
||||
}
|
||||
|
||||
void GameLoop(float deltaTime) {
|
||||
Math::Vector3 listenerPos = mainCamera->GetPosition();
|
||||
Math::Quaternion listenerRot = mainCamera->GetRotation();
|
||||
AudioSystem::Get().SetListenerTransform(listenerPos, listenerRot);
|
||||
AudioSystem::Get().Update(deltaTime);
|
||||
}
|
||||
|
||||
void CleanupAudio() {
|
||||
AudioSystem::Get().Shutdown();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [Audio 模块总览](../audio.md) - Audio 模块总览
|
||||
- [IAudioBackend](../i-audio-backend/i-audio-backend.md) - 音频后端接口
|
||||
- [AudioConfig](../audio-config/audio-config.md) - 音频配置
|
||||
34
docs/api/audio/audio-system/get-available-devices.md
Normal file
34
docs/api/audio/audio-system/get-available-devices.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# AudioSystem::GetAvailableDevices
|
||||
|
||||
获取可用音频设备列表。
|
||||
|
||||
```cpp
|
||||
void GetAvailableDevices(std::vector<std::string>& devices);
|
||||
```
|
||||
|
||||
填充传入的 vector,获取系统中所有可用的音频输出设备列表。
|
||||
|
||||
**参数:**
|
||||
- `devices` - 用于存储设备名称列表的 vector引用
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void ListAudioDevices() {
|
||||
std::vector<std::string> devices;
|
||||
AudioSystem::Get().GetAvailableDevices(devices);
|
||||
|
||||
for (size_t i = 0; i < devices.size(); ++i) {
|
||||
printf("Device %zu: %s\n", i, devices[i].c_str());
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetDevice](set-device.md) - 设置音频设备
|
||||
26
docs/api/audio/audio-system/get-current-device.md
Normal file
26
docs/api/audio/audio-system/get-current-device.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# AudioSystem::GetCurrentDevice
|
||||
|
||||
获取当前音频设备名称。
|
||||
|
||||
```cpp
|
||||
std::string GetCurrentDevice() const;
|
||||
```
|
||||
|
||||
**返回:** `std::string` - 当前使用的音频设备名称
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void PrintCurrentDevice() {
|
||||
std::string device = AudioSystem::Get().GetCurrentDevice();
|
||||
printf("Current audio device: %s\n", device.c_str());
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
14
docs/api/audio/audio-system/get-listener-position.md
Normal file
14
docs/api/audio/audio-system/get-listener-position.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# AudioSystem::GetListenerPosition
|
||||
|
||||
获取监听器位置。
|
||||
|
||||
```cpp
|
||||
const Math::Vector3& GetListenerPosition() const;
|
||||
```
|
||||
|
||||
**返回:** `const Math::Vector3&` - 监听器当前位置引用
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetListenerTransform](set-listener-transform.md) - 设置监听器变换
|
||||
14
docs/api/audio/audio-system/get-listener-rotation.md
Normal file
14
docs/api/audio/audio-system/get-listener-rotation.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# AudioSystem::GetListenerRotation
|
||||
|
||||
获取监听器旋转。
|
||||
|
||||
```cpp
|
||||
const Math::Quaternion& GetListenerRotation() const;
|
||||
```
|
||||
|
||||
**返回:** `const Math::Quaternion&` - 监听器当前旋转引用
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetListenerTransform](set-listener-transform.md) - 设置监听器变换
|
||||
14
docs/api/audio/audio-system/get-listener-velocity.md
Normal file
14
docs/api/audio/audio-system/get-listener-velocity.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# AudioSystem::GetListenerVelocity
|
||||
|
||||
获取监听器速度。
|
||||
|
||||
```cpp
|
||||
const Math::Vector3& GetListenerVelocity() const;
|
||||
```
|
||||
|
||||
**返回:** `const Math::Vector3&` - 监听器当前速度引用
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetListenerVelocity](set-listener-velocity.md) - 设置监听器速度
|
||||
27
docs/api/audio/audio-system/get-master-volume.md
Normal file
27
docs/api/audio/audio-system/get-master-volume.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# AudioSystem::GetMasterVolume
|
||||
|
||||
获取主音量。
|
||||
|
||||
```cpp
|
||||
float GetMasterVolume() const;
|
||||
```
|
||||
|
||||
**返回:** `float` - 主音量值,范围 [0.0, 1.0]
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void PrintMasterVolume() {
|
||||
float volume = AudioSystem::Get().GetMasterVolume();
|
||||
printf("Master volume: %.1f%%\n", volume * 100.0f);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetMasterVolume](set-master-volume.md) - 设置主音量
|
||||
39
docs/api/audio/audio-system/get-stats.md
Normal file
39
docs/api/audio/audio-system/get-stats.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# AudioSystem::GetStats
|
||||
|
||||
获取音频系统统计信息。
|
||||
|
||||
```cpp
|
||||
const Stats& GetStats() const;
|
||||
```
|
||||
|
||||
返回包含音频系统运行时统计信息的结构体,包括活跃源数量、总源数量、内存使用量和 CPU 使用率。
|
||||
|
||||
**返回:** `const Stats&` - 统计信息结构体引用
|
||||
|
||||
**Stats 结构体:**
|
||||
|
||||
| 成员 | 类型 | 描述 |
|
||||
|------|------|------|
|
||||
| `activeSources` | `uint32_t` | 当前正在播放的音频源数量 |
|
||||
| `totalSources` | `uint32_t` | 注册的音频源总数 |
|
||||
| `memoryUsage` | `uint64_t` | 音频系统内存使用量(字节) |
|
||||
| `cpuUsage` | `float` | CPU 使用率估算值 |
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void PrintAudioStats() {
|
||||
const auto& stats = AudioSystem::Get().GetStats();
|
||||
printf("Active sources: %u / %u\n", stats.activeSources, stats.totalSources);
|
||||
printf("Memory usage: %.2f MB\n", stats.memoryUsage / (1024.0 * 1024.0));
|
||||
printf("CPU usage: %.1f%%\n", stats.cpuUsage * 100.0f);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
40
docs/api/audio/audio-system/initialize.md
Normal file
40
docs/api/audio/audio-system/initialize.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# AudioSystem::Initialize
|
||||
|
||||
初始化音频系统。
|
||||
|
||||
```cpp
|
||||
void Initialize(const AudioConfig& config);
|
||||
```
|
||||
|
||||
使用指定的配置参数初始化音频系统。在此之前必须先通过 SetBackend 设置音频后端实现。初始化过程会配置音频缓冲区大小、采样率、通道数等参数。
|
||||
|
||||
**参数:**
|
||||
- `config` - 音频系统配置,包含采样率、通道数、位深度、扬声器模式、缓冲区大小等
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
#include <XCEngine/Audio/WASAPI/WASAPIBackend.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void SetupAudio() {
|
||||
AudioSystem::Get().SetBackend(std::make_unique<WASAPIBackend>());
|
||||
|
||||
AudioConfig config;
|
||||
config.sampleRate = 48000;
|
||||
config.channels = 2;
|
||||
config.bitsPerSample = 16;
|
||||
config.speakerMode = SpeakerMode::Stereo;
|
||||
config.bufferSize = 8192;
|
||||
config.bufferCount = 2;
|
||||
|
||||
AudioSystem::Get().Initialize(config);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [AudioConfig](../audio-config/audio-config.md) - 音频配置
|
||||
28
docs/api/audio/audio-system/is-muted.md
Normal file
28
docs/api/audio/audio-system/is-muted.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# AudioSystem::IsMuted
|
||||
|
||||
检查是否静音。
|
||||
|
||||
```cpp
|
||||
bool IsMuted() const;
|
||||
```
|
||||
|
||||
**返回:** `bool` - 如果当前处于静音状态则返回 true
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void CheckMuteState() {
|
||||
if (AudioSystem::Get().IsMuted()) {
|
||||
printf("Audio is muted\n");
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [SetMuted](set-muted.md) - 设置静音状态
|
||||
18
docs/api/audio/audio-system/process-audio.md
Normal file
18
docs/api/audio/audio-system/process-audio.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# AudioSystem::ProcessAudio
|
||||
|
||||
处理音频数据。
|
||||
|
||||
```cpp
|
||||
void ProcessAudio(float* buffer, uint32 sampleCount, uint32 channels);
|
||||
```
|
||||
|
||||
将所有注册的音频源混音到输出缓冲区。内部处理 3D 空间化、音量控制和效果链。
|
||||
|
||||
**参数:**
|
||||
- `buffer` - 输出音频缓冲区指针
|
||||
- `sampleCount` - 样本数量
|
||||
- `channels` - 通道数
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
29
docs/api/audio/audio-system/register-source.md
Normal file
29
docs/api/audio/audio-system/register-source.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AudioSystem::RegisterSource
|
||||
|
||||
注册音频源。
|
||||
|
||||
```cpp
|
||||
void RegisterSource(Components::AudioSourceComponent* source);
|
||||
```
|
||||
|
||||
将音频源组件注册到音频系统。已注册的音频源将在每帧 Update 时被处理和混音。
|
||||
|
||||
**参数:**
|
||||
- `source` - 要注册的 AudioSourceComponent 指针
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void RegisterAudioSource(Components::AudioSourceComponent* audioSource) {
|
||||
AudioSystem::Get().RegisterSource(audioSource);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [UnregisterSource](unregister-source.md) - 注销音频源
|
||||
30
docs/api/audio/audio-system/set-backend.md
Normal file
30
docs/api/audio/audio-system/set-backend.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# AudioSystem::SetBackend
|
||||
|
||||
设置音频后端实现。
|
||||
|
||||
```cpp
|
||||
void SetBackend(std::unique_ptr<IAudioBackend> backend);
|
||||
```
|
||||
|
||||
设置音频系统的后端实现。必须在调用 Initialize 之前设置后端。音频系统不拥有后端的所有权,后端通过 unique_ptr 传递。
|
||||
|
||||
**参数:**
|
||||
- `backend` - 音频后端实现的 unique_ptr,支持 IAudioBackend 接口
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
#include <XCEngine/Audio/WASAPI/WASAPIBackend.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void SetupAudio() {
|
||||
AudioSystem::Get().SetBackend(std::make_unique<WASAPIBackend>());
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [IAudioBackend](../i-audio-backend/i-audio-backend.md) - 音频后端接口
|
||||
34
docs/api/audio/audio-system/set-device.md
Normal file
34
docs/api/audio/audio-system/set-device.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# AudioSystem::SetDevice
|
||||
|
||||
设置音频设备。
|
||||
|
||||
```cpp
|
||||
void SetDevice(const std::string& deviceName);
|
||||
```
|
||||
|
||||
切换到指定的音频设备。如果设备名称无效或设备不可用,操作失败。
|
||||
|
||||
**参数:**
|
||||
- `deviceName` - 目标音频设备名称
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void SwitchAudioDevice() {
|
||||
std::vector<std::string> devices;
|
||||
AudioSystem::Get().GetAvailableDevices(devices);
|
||||
|
||||
if (devices.size() > 1) {
|
||||
AudioSystem::Get().SetDevice(devices[1]);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [GetAvailableDevices](get-available-devices.md) - 获取可用设备列表
|
||||
31
docs/api/audio/audio-system/set-listener-transform.md
Normal file
31
docs/api/audio/audio-system/set-listener-transform.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# AudioSystem::SetListenerTransform
|
||||
|
||||
设置监听器变换。
|
||||
|
||||
```cpp
|
||||
void SetListenerTransform(const Math::Vector3& position, const Math::Quaternion& rotation);
|
||||
```
|
||||
|
||||
设置音频监听器的位置和旋转。用于 3D 空间音频计算,包括声音的方向、距离衰减和多普勒效应。
|
||||
|
||||
**参数:**
|
||||
- `position` - 监听器位置(世界坐标)
|
||||
- `rotation` - 监听器旋转(四元数)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void UpdateListenerFromCamera(Camera* camera) {
|
||||
Math::Vector3 pos = camera->GetPosition();
|
||||
Math::Quaternion rot = camera->GetRotation();
|
||||
AudioSystem::Get().SetListenerTransform(pos, rot);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
29
docs/api/audio/audio-system/set-listener-velocity.md
Normal file
29
docs/api/audio/audio-system/set-listener-velocity.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AudioSystem::SetListenerVelocity
|
||||
|
||||
设置监听器速度。
|
||||
|
||||
```cpp
|
||||
void SetListenerVelocity(const Math::Vector3& velocity);
|
||||
```
|
||||
|
||||
设置音频监听器的速度向量。用于多普勒效应计算,当声源与监听器之间存在相对运动时会产生音调偏移。
|
||||
|
||||
**参数:**
|
||||
- `velocity` - 监听器速度向量(世界坐标,单位:米/秒)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void UpdateListenerVelocity(RigidBody* listenerBody) {
|
||||
Math::Vector3 velocity = listenerBody->GetVelocity();
|
||||
AudioSystem::Get().SetListenerVelocity(velocity);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
29
docs/api/audio/audio-system/set-master-volume.md
Normal file
29
docs/api/audio/audio-system/set-master-volume.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AudioSystem::SetMasterVolume
|
||||
|
||||
设置主音量。
|
||||
|
||||
```cpp
|
||||
void SetMasterVolume(float volume);
|
||||
```
|
||||
|
||||
设置全局主音量系数。该值影响所有音频源的输出电平。
|
||||
|
||||
**参数:**
|
||||
- `volume` - 主音量值,有效范围 [0.0, 1.0]
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void SetGlobalVolume() {
|
||||
AudioSystem::Get().SetMasterVolume(0.75f);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [GetMasterVolume](get-master-volume.md) - 获取主音量
|
||||
30
docs/api/audio/audio-system/set-muted.md
Normal file
30
docs/api/audio/audio-system/set-muted.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# AudioSystem::SetMuted
|
||||
|
||||
设置静音状态。
|
||||
|
||||
```cpp
|
||||
void SetMuted(bool muted);
|
||||
```
|
||||
|
||||
启用或禁用全局静音。静音状态下所有音频输出将被消音。
|
||||
|
||||
**参数:**
|
||||
- `muted` - true 为启用静音,false 为禁用静音
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void ToggleMute() {
|
||||
bool currentlyMuted = AudioSystem::Get().IsMuted();
|
||||
AudioSystem::Get().SetMuted(!currentlyMuted);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [IsMuted](is-muted.md) - 检查静音状态
|
||||
25
docs/api/audio/audio-system/shutdown.md
Normal file
25
docs/api/audio/audio-system/shutdown.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# AudioSystem::Shutdown
|
||||
|
||||
关闭音频系统,释放所有资源。
|
||||
|
||||
```cpp
|
||||
void Shutdown();
|
||||
```
|
||||
|
||||
关闭音频系统并释放相关资源。调用后音频系统将停止所有音频处理,已注册的音频源将被注销。在程序退出或音频系统不再需要时调用。
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void CleanupAudio() {
|
||||
AudioSystem::Get().Shutdown();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
29
docs/api/audio/audio-system/unregister-source.md
Normal file
29
docs/api/audio/audio-system/unregister-source.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# AudioSystem::UnregisterSource
|
||||
|
||||
注销音频源。
|
||||
|
||||
```cpp
|
||||
void UnregisterSource(Components::AudioSourceComponent* source);
|
||||
```
|
||||
|
||||
将音频源组件从音频系统注销。已注销的音频源将不再被处理和混音。
|
||||
|
||||
**参数:**
|
||||
- `source` - 要注销的 AudioSourceComponent 指针
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void UnregisterAudioSource(Components::AudioSourceComponent* audioSource) {
|
||||
AudioSystem::Get().UnregisterSource(audioSource);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
- [RegisterSource](register-source.md) - 注册音频源
|
||||
28
docs/api/audio/audio-system/update.md
Normal file
28
docs/api/audio/audio-system/update.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# AudioSystem::Update
|
||||
|
||||
每帧更新音频系统状态。
|
||||
|
||||
```cpp
|
||||
void Update(float deltaTime);
|
||||
```
|
||||
|
||||
每帧调用以更新音频系统状态。该方法处理所有已注册音频源的 3D 空间化计算,包括多普勒效应、距离衰减、声像定位等。同时更新内部统计信息。
|
||||
|
||||
**参数:**
|
||||
- `deltaTime` - 距离上一帧的时间增量(秒)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Audio/AudioSystem.h>
|
||||
|
||||
using namespace XCEngine::Audio;
|
||||
|
||||
void GameLoop(float deltaTime) {
|
||||
AudioSystem::Get().Update(deltaTime);
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [AudioSystem 总览](audio-system.md)
|
||||
Reference in New Issue
Block a user