namespace OCES.Resonance.Core;
///
/// 音频文件元数据实体类,对应音频资产管理系统中的文件记录
///
public class AudioFileMeta
{
#region 必备条目
/// 主键ID,音频文件的唯一数字标识符
public required int Id { get; set; }
/// 全局唯一标识符,通常为UUID,用于跨系统识别
public required string UniqueId { get; set; }
/// 文件的MD5值,用于查重
public required string Md5 { get; set; }
/// 原始导入路径,音频文件被导入时的完整文件路径
public required string Path { get; set; }
/// 文件名,包含扩展名的音频文件名称(如 sound.wav)
public required string Filename { get; set; }
/// 文件夹,文件所在的文件夹名称
public required string Folder { get; set; }
/// 目录,文件的存储目录路径
public required string Directory { get; set; }
/// 时长,音频文件的播放长度(通常以秒为单位)
public required double Duration { get; set; }
/// 位深度,音频采样位深(如 16、24、32 bit)
public required int BitDepth { get; set; }
/// 声道数,如 1=单声道、2=立体声、6=5.1环绕声
public required int Channels { get; set; }
/// 采样率,如 44100、48000、96000 Hz
public required double SampleRate { get; set; }
/// 文件类型,音频格式(WAV、MP3、AIFF、FLAC等)
public required string Type { get; set; }
/// 导入日期,音频入库的时间
public required DateTime DateAdded { get; set; }
/// 修改日期,音频创建或录制的日期
public required DateTime OriginalModificationDate { get; set; }
/// 创建时间,音频文件的原始创建时间
public required DateTime OriginationTime { get; set; }
#endregion
///声道配置
public string? ChannelLayout { get; set; }
/// 短ID,便于人工识别或显示的简短标识
public string? ShortId { get; set; }
/// 节拍速度,每分钟节拍数,用于音乐类音频
public double? Bpm { get; set; }
/// 帧率,视频同步用的时间基准(如 24fps、25fps、30fps)
public string? FrameRate { get; set; }
/// 时间码,用于音视频同步的时间戳信息
public int? Timecode { get; set; }
/// 描述,音频内容的文字说明
public string? Description { get; set; }
/// 分类,音频的大类(如:音效、音乐、对白、环境音)
public string? Category { get; set; }
/// 子分类,更细分的类别(如:交通→汽车→引擎)
public string? Subcategory { get; set; }
/// CatId
public string? CatId { get; set; }
public string? CategoryFull { get; set; }
/// 流派,音乐风格分类(如:摇滚、古典、电子)
public string? Genre { get; set; }
/// 风格,更具体的风格描述
public string? Style { get; set; }
/// 情绪,音频传达的情感氛围(如:紧张、欢快、悲伤)
public string? Mood { get; set; }
/// 关键词,用于搜索的标签,多个关键词通常用逗号分隔
public string? Keywords { get; set; }
/// 评分,音频质量或推荐度评分(如 0-5星)
public uint? Rating { get; set; }
/// 艺术家,表演者或演奏者名称
public string? Artist { get; set; }
/// 作曲家,音乐创作者
public string? Composer { get; set; }
/// 设计师,音效设计师名称
public string? Designer { get; set; }
/// 录音师,现场录音人员
public string? Recordist { get; set; }
/// 出版商,发行方或版权持有方
public string? Publisher { get; set; }
/// 制造商,音频库或设备的制作方
public string? Manufacturer { get; set; }
/// 来源方,原始创建者或来源机构
public string? BwfOriginator { get; set; }
/// 来源引用,原始来源的参考编号
public string? BwfOriginatorRef { get; set; }
public DateTime? BwfDate { get; set; }
public string? BwfDescription { get; set; }
/// 项目名称,所属制作项目
public string? ProjectName { get; set; }
/// 音频库,所属音效库或音乐库的名称
public string? Library { get; set; }
/// CD标题,原始CD专辑名称
public string? CdTitle { get; set; }
public int? DiscNumber { get; set; }
/// 曲目标题,音乐或音轨的标题
public string? TrackTitle { get; set; }
public int? TrackNumber { get; set; }
/// 剧集,所属剧集或系列编号
public string? Episode { get; set; }
/// 场景,对应的影视场景标识
public string? Scene { get; set; }
/// 条次,录音的版本号或拍摄条次
public string? Take { get; set; }
/// 磁带,原始磁带编号(历史遗留字段)
public string? Tape { get; set; }
/// 提示号,播放列表或乐谱中的编号
public int? CueNumber { get; set; }
/// 同步点,用于音视频同步的参考点
public int? SyncPoint { get; set; }
public DateTime? ReleaseDate { get; set; }
public int? TrackYear { get; set; }
/// 是否已编辑,布尔值(0=否,1=是)
public bool? IsEdited { get; set; }
/// 是否已分割,布尔值,标记是否从长文件中分割出来
public bool? IsSplit { get; set; }
/// 位置,录音地点或存储位置
public string? Location { get; set; }
/// Content group description Used if the sound belongs to a larger category of sounds/music. For example, classical music is often sorted in different musical sections (e.g. "Piano Concerto").
public string? Group { get; set; }
/// 标记点,音频内的关键时间点标记
public string? Markers { get; set; }
/// 注释,用户或系统添加的备注
public string? Comments { get; set; }
/// 备注,额外的说明信息
public string? Notes { get; set; }
/// 版权,版权声明信息
public string? Copyright { get; set; }
/// 编码历史,BWF格式的编码历史记录
public string? CodingHistory { get; set; }
/// 麦克风,录音使用的麦克风型号或设置
public string? Microphone { get; set; }
public string? MicPerspective { get; set; }
// 用户自定义字段(共8个)
/// 用户自定义字段1
public string? User1 { get; set; }
/// 用户自定义字段2
public string? User2 { get; set; }
/// 用户自定义字段3
public string? User3 { get; set; }
/// 用户自定义字段4
public string? User4 { get; set; }
/// 用户自定义字段5
public string? User5 { get; set; }
/// 用户自定义字段6
public string? User6 { get; set; }
/// 用户自定义字段7
public string? User7 { get; set; }
/// 用户自定义字段8
public string? User8 { get; set; }
}