- resources: 更新 asyncloader, audioclip, mesh-import-settings, texture-loader 文档 - rhi: 更新 opengl render-target-view 文档 - components: 新增 camera-component 全部方法文档 (15个文件)
4.0 KiB
4.0 KiB
AudioSourceComponent
命名空间: XCEngine::Components
类型: class
头文件: XCEngine/Components/AudioSourceComponent.h
描述: 音频源组件,负责声音播放、3D 空间化、衰减和多普勒效应。
概述
AudioSourceComponent 是 XCEngine ECS 系统中的音频源组件,用于在场景中播放声音。它支持 3D 空间化、声音衰减、多普勒效应、混响区域混合等功能。该组件需要配合 AudioListenerComponent 使用来接收声音并进行音频处理。
公共方法
播放控制
| 方法 | 描述 |
|---|---|
Play |
开始播放音频 |
Pause |
暂停播放 |
Stop |
停止播放 |
IsPlaying |
检查是否正在播放 |
IsPaused |
检查是否已暂停 |
音频剪辑
| 方法 | 描述 |
|---|---|
SetClip |
设置音频剪辑 |
GetClip |
获取当前音频剪辑 |
音频属性
| 方法 | 描述 |
|---|---|
SetVolume |
设置音量 |
GetVolume |
获取音量 |
SetPitch |
设置音调 |
GetPitch |
获取音调 |
SetPan |
设置平移 |
GetPan |
获取平移 |
SetLooping |
设置循环播放 |
IsLooping |
检查是否循环播放 |
3D 空间化
| 方法 | 描述 |
|---|---|
SetSpatialize |
设置是否启用 3D 空间化 |
IsSpatialize |
检查是否启用 3D 空间化 |
Set3DParams |
设置 3D 音频参数 |
Get3DParams |
获取 3D 音频参数 |
SetDopplerLevel |
设置多普勒效应等级 |
GetDopplerLevel |
获取多普勒效应等级 |
SetSpread |
设置扩散角度 |
GetSpread |
获取扩散角度 |
SetReverbZoneMix |
设置混响区域混合 |
GetReverbZoneMix |
获取混响区域混合 |
输出混音器
| 方法 | 描述 |
|---|---|
SetOutputMixer |
设置输出混音器 |
GetOutputMixer |
获取输出混音器 |
播放时间
| 方法 | 描述 |
|---|---|
SetTime |
设置播放位置 |
GetTime |
获取当前播放位置 |
GetDuration |
获取音频总时长 |
能量检测
| 方法 | 描述 |
|---|---|
GetEnergy |
获取当前能量值 |
StartEnergyDetect |
开始能量检测 |
StopEnergyDetect |
停止能量检测 |
IsEnergyDetecting |
检查是否正在能量检测 |
使用示例
#include <XCEngine/Components/AudioSourceComponent.h>
#include <XCEngine/Components/GameObject.h>
#include <XCEngine/Resources/AudioClip/AudioClip.h>
using namespace XCEngine::Components;
void PlaySound(GameObject* audioObject) {
auto audioSource = audioObject->AddComponent<AudioSourceComponent>();
audioSource->SetVolume(0.8f);
audioSource->SetPitch(1.0f);
audioSource->SetLooping(false);
audioSource->SetSpatialize(true);
audioSource->Play();
}
void Setup3DAudio(GameObject* audioObject) {
auto audioSource = audioObject->AddComponent<AudioSourceComponent>();
Audio::Audio3DParams params;
params.dopplerLevel = 1.0f;
params.spread = 0.0f;
params.reverbZoneMix = 1.0f;
audioSource->Set3DParams(params);
}
相关文档
- Components 模块总览 - Components 模块总览
- Component - 组件基类
- AudioListenerComponent - 音频监听组件