a4f2eb645a
- 将AudioScheduler重命名为SfxSystem,统一命名规范 - 新增MixingType.Accented音效类型,支持强调音效独立混音 - 重构音频混合器层级: Master下新增Regular中间层 - SfxSystem使用外部AudioSourcePool,与MusicSystem隔离 - 修复ambiencePoolRoot父节点错误(原错误挂载到musicPoolRoot) - Play方法支持onPlay回调 - 同步更新AudioObject.bytes二进制配置数据
88 lines
2.0 KiB
C#
88 lines
2.0 KiB
C#
using System.IO;
|
|
|
|
namespace OCES.Audio
|
|
{
|
|
/// <summary>
|
|
/// 替换策略类型
|
|
/// </summary>
|
|
public enum KillMode
|
|
{
|
|
Oldest, // 打断最早开始的
|
|
Newest, // 打断最新开始的
|
|
}
|
|
|
|
/// <summary>
|
|
/// 混音分组
|
|
/// </summary>
|
|
public enum MixingType
|
|
{
|
|
Sfx = 0,
|
|
Voice,
|
|
Accented,
|
|
}
|
|
|
|
/// <summary>
|
|
/// 声音容器类型
|
|
/// </summary>
|
|
public enum ContainerType
|
|
{
|
|
Random = 0,
|
|
Sequence,
|
|
Blend,
|
|
}
|
|
|
|
public enum BlendCrossFadeType
|
|
{
|
|
Exponential = 0,
|
|
Linear,
|
|
Logarithmic,
|
|
}
|
|
|
|
public enum AlignMode
|
|
{
|
|
Immediate,
|
|
Beat,
|
|
Bar,
|
|
}
|
|
|
|
public enum ActiveSoundState
|
|
{
|
|
Pending, // 已进入调度,但还没真正播放
|
|
Playing, // 已经开始播放
|
|
Finished,
|
|
}
|
|
|
|
public interface IBinarySerializable
|
|
{
|
|
void DeSerialize(BinaryReader reader);
|
|
void Serialize(BinaryWriter writer);
|
|
}
|
|
|
|
// ─────────────────────────────────────────────
|
|
// 辅助接口,让泛型方法同时处理 MusicPath 和 AmbiencePath
|
|
// ─────────────────────────────────────────────
|
|
|
|
public interface IPathEntry
|
|
{
|
|
uint Id { get; }
|
|
string Path { get; }
|
|
uint ContainerId { get; }
|
|
int Priority { get; }
|
|
}
|
|
|
|
public interface ITransitionConfig
|
|
{
|
|
float FadeOutOffset { get; }
|
|
float FadeOutTime { get; }
|
|
float FadeInOffset { get; }
|
|
float FadeInTime { get; }
|
|
}
|
|
|
|
public partial class MusicTransition : ITransitionConfig { }
|
|
public partial class AmbienceTransition : ITransitionConfig { }
|
|
|
|
|
|
public partial class MusicPath : IPathEntry { }
|
|
public partial class AmbiencePath : IPathEntry { }
|
|
}
|