GFramework/GFramework.Godot/system/IAudioManagerSystem.cs
GwWuYou 00704b7ec2 refactor(architecture): 重构项目结构并移除抽象层
- 移除 GFramework.Godot.Abstractions 项目及其所有配置文件
- 将抽象接口直接合并到 GFramework.Godot 项目中
- 更新项目引用关系,移除不必要的抽象层依赖
- 调整命名空间引用,统一使用 GFramework.Godot.architecture
- 简化模块参数命名,提升代码可读性
- 更新解决方案配置,移除已删除的项目配置
2025-12-28 13:34:20 +08:00

179 lines
5.4 KiB
C#
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.

using GFramework.Core.Abstractions.system;
using Godot;
namespace GFramework.Godot.system;
/// <summary>
/// 音频管理器系统接口,用于统一管理背景音乐和音效的播放
/// </summary>
public interface IAudioManagerSystem : ISystem
{
/// <summary>
/// 播放背景音乐
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="volume">音量大小范围0-1</param>
/// <param name="loop">是否循环播放</param>
void PlayMusic(string audioPath, float volume = 1.0f, bool loop = true);
/// <summary>
/// 播放音效
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="volume">音量大小范围0-1</param>
/// <param name="pitch">音调调整</param>
void PlaySound(string audioPath, float volume = 1.0f, float pitch = 1.0f);
/// <summary>
/// 播放特效音效
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="volume">音量大小范围0-1</param>
/// <param name="pitch">音调调整</param>
void PlaySfx(string audioPath, float volume = 1.0f, float pitch = 1.0f);
/// <summary>
/// 播放语音
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="volume">音量大小范围0-1</param>
/// <param name="pitch">音调调整</param>
void PlayVoice(string audioPath, float volume = 1.0f, float pitch = 1.0f);
/// <summary>
/// 播放环境音效
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="volume">音量大小范围0-1</param>
/// <param name="pitch">音调调整</param>
void PlayAmbient(string audioPath, float volume = 1.0f, float pitch = 1.0f);
/// <summary>
/// 停止背景音乐
/// </summary>
void StopMusic();
/// <summary>
/// 暂停背景音乐
/// </summary>
void PauseMusic();
/// <summary>
/// 恢复背景音乐播放
/// </summary>
void ResumeMusic();
/// <summary>
/// 设置背景音乐音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetMusicVolume(float volume);
/// <summary>
/// 获取背景音乐音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetMusicVolume();
/// <summary>
/// 设置音效音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetSoundVolume(float volume);
/// <summary>
/// 获取音效音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetSoundVolume();
/// <summary>
/// 设置特效音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetSfxVolume(float volume);
/// <summary>
/// 获取特效音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetSfxVolume();
/// <summary>
/// 设置语音音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetVoiceVolume(float volume);
/// <summary>
/// 获取语音音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetVoiceVolume();
/// <summary>
/// 设置环境音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetAmbientVolume(float volume);
/// <summary>
/// 获取环境音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetAmbientVolume();
/// <summary>
/// 设置主音量
/// </summary>
/// <param name="volume">音量大小范围0-1</param>
void SetMasterVolume(float volume);
/// <summary>
/// 获取主音量
/// </summary>
/// <returns>音量大小范围0-1</returns>
float GetMasterVolume();
/// <summary>
/// 检查背景音乐是否正在播放
/// </summary>
/// <returns>正在播放返回true否则返回false</returns>
bool IsMusicPlaying();
/// <summary>
/// 淡入背景音乐
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="duration">淡入持续时间(秒)</param>
/// <param name="volume">目标音量</param>
void FadeInMusic(string audioPath, float duration, float volume = 1.0f);
/// <summary>
/// 淡出背景音乐
/// </summary>
/// <param name="duration">淡出持续时间(秒)</param>
void FadeOutMusic(float duration);
/// <summary>
/// 播放3D音效
/// </summary>
/// <param name="audioPath">音频文件路径</param>
/// <param name="position">3D空间中的位置</param>
/// <param name="volume">音量大小范围0-1</param>
void PlaySound3D(string audioPath, Vector3 position, float volume = 1.0f);
/// <summary>
/// 设置低通滤波器强度
/// </summary>
/// <param name="amount">滤波器强度范围0-1</param>
void SetLowPassFilter(float amount);
/// <summary>
/// 设置音频混响效果
/// </summary>
/// <param name="roomSize">房间大小</param>
/// <param name="damping">阻尼</param>
/// <param name="wetLevel">湿声级别</param>
void SetReverb(float roomSize, float damping, float wetLevel);
}