重构音频文件元数据模型并添加数据库支持
This commit is contained in:
@@ -3,49 +3,62 @@
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 音频文件元数据实体类,对应音频资产管理系统中的文件记录
|
/// 音频文件元数据实体类,对应音频资产管理系统中的文件记录
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FileMeta
|
public class AudioFileMeta
|
||||||
{
|
{
|
||||||
|
#region 必备条目
|
||||||
/// <summary>主键ID,音频文件的唯一数字标识符</summary>
|
/// <summary>主键ID,音频文件的唯一数字标识符</summary>
|
||||||
public int Id { get; set; }
|
public required int Id { get; set; }
|
||||||
|
|
||||||
/// <summary>全局唯一标识符,通常为UUID,用于跨系统识别</summary>
|
/// <summary>全局唯一标识符,通常为UUID,用于跨系统识别</summary>
|
||||||
public string UniqueId { get; set; }
|
public required string UniqueId { get; set; }
|
||||||
|
|
||||||
/// <summary>文件的MD5值,用于查重</summary>
|
/// <summary>文件的MD5值,用于查重</summary>
|
||||||
public string Md5 { get; set; }
|
public required string Md5 { get; set; }
|
||||||
|
|
||||||
|
/// <summary>原始导入路径,音频文件被导入时的完整文件路径</summary>
|
||||||
|
public required string Path { get; set; }
|
||||||
|
|
||||||
|
/// <summary>文件名,包含扩展名的音频文件名称(如 sound.wav)</summary>
|
||||||
|
public required string Filename { get; set; }
|
||||||
|
|
||||||
|
/// <summary>文件夹,文件所在的文件夹名称</summary>
|
||||||
|
public required string Folder { get; set; }
|
||||||
|
|
||||||
|
/// <summary>目录,文件的存储目录路径</summary>
|
||||||
|
public required string Directory { get; set; }
|
||||||
|
|
||||||
|
/// <summary>时长,音频文件的播放长度(通常以秒为单位)</summary>
|
||||||
|
public required double Duration { get; set; }
|
||||||
|
|
||||||
|
/// <summary>时长,以采样数记录的时长</summary>
|
||||||
|
public required uint TotalSamples { get; set; }
|
||||||
|
|
||||||
|
/// <summary>位深度,音频采样位深(如 16、24、32 bit)</summary>
|
||||||
|
public required int BitDepth { get; set; }
|
||||||
|
|
||||||
|
/// <summary>声道数,如 1=单声道、2=立体声、6=5.1环绕声</summary>
|
||||||
|
public required int Channels { get; set; }
|
||||||
|
|
||||||
|
/// <summary>采样率,如 44100、48000、96000 Hz</summary>
|
||||||
|
public required int SampleRate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>文件类型,音频格式(WAV、MP3、AIFF、FLAC等)</summary>
|
||||||
|
public required string Type { get; set; }
|
||||||
|
|
||||||
|
/// <summary>导入日期,音频入库的时间</summary>
|
||||||
|
public required DateTime DateAdded { get; set; }
|
||||||
|
|
||||||
|
/// <summary>修改日期,音频创建或录制的日期</summary>
|
||||||
|
public required DateTime OriginalModificationDate { get; set; }
|
||||||
|
|
||||||
|
/// <summary>创建时间,音频文件的原始创建时间</summary>
|
||||||
|
public required DateTime OriginationTime { get; set; }
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
/// <summary>短ID,便于人工识别或显示的简短标识</summary>
|
/// <summary>短ID,便于人工识别或显示的简短标识</summary>
|
||||||
public string? ShortId { get; set; }
|
public string? ShortId { get; set; }
|
||||||
|
|
||||||
/// <summary>原始导入路径,音频文件被导入时的完整文件路径</summary>
|
|
||||||
public string Path { get; set; }
|
|
||||||
|
|
||||||
/// <summary>文件名,包含扩展名的音频文件名称(如 sound.wav)</summary>
|
|
||||||
public string Filename { get; set; }
|
|
||||||
|
|
||||||
/// <summary>文件夹,文件所在的文件夹名称</summary>
|
|
||||||
public string Folder { get; set; }
|
|
||||||
|
|
||||||
/// <summary>目录,文件的存储目录路径</summary>
|
|
||||||
public string Directory { get; set; }
|
|
||||||
|
|
||||||
/// <summary>时长,音频文件的播放长度(通常以秒为单位)</summary>
|
|
||||||
public double Duration { get; set; }
|
|
||||||
|
|
||||||
public int TotalSamples { get; set; }
|
|
||||||
|
|
||||||
/// <summary>位深度,音频采样位深(如 16、24、32 bit)</summary>
|
|
||||||
public int BitDepth { get; set; }
|
|
||||||
|
|
||||||
/// <summary>声道数,如 1=单声道、2=立体声、6=5.1环绕声</summary>
|
|
||||||
public int Channels { get; set; }
|
|
||||||
|
|
||||||
/// <summary>采样率,如 44100、48000、96000 Hz</summary>
|
|
||||||
public int SampleRate { get; set; }
|
|
||||||
|
|
||||||
/// <summary>文件类型,音频格式(WAV、MP3、AIFF、FLAC等)</summary>
|
|
||||||
public string Type { get; set; }
|
|
||||||
|
|
||||||
/// <summary>节拍速度,每分钟节拍数,用于音乐类音频</summary>
|
/// <summary>节拍速度,每分钟节拍数,用于音乐类音频</summary>
|
||||||
public double? Bpm { get; set; }
|
public double? Bpm { get; set; }
|
||||||
|
|
||||||
@@ -82,7 +95,7 @@ public class FileMeta
|
|||||||
public string? Keywords { get; set; }
|
public string? Keywords { get; set; }
|
||||||
|
|
||||||
/// <summary>评分,音频质量或推荐度评分(如 0-5星)</summary>
|
/// <summary>评分,音频质量或推荐度评分(如 0-5星)</summary>
|
||||||
public decimal? Rating { get; set; }
|
public uint? Rating { get; set; }
|
||||||
|
|
||||||
/// <summary>艺术家,表演者或演奏者名称</summary>
|
/// <summary>艺术家,表演者或演奏者名称</summary>
|
||||||
public string? Artist { get; set; }
|
public string? Artist { get; set; }
|
||||||
@@ -138,15 +151,6 @@ public class FileMeta
|
|||||||
/// <summary>同步点,用于音视频同步的参考点</summary>
|
/// <summary>同步点,用于音视频同步的参考点</summary>
|
||||||
public int? SyncPoint { get; set; }
|
public int? SyncPoint { get; set; }
|
||||||
|
|
||||||
/// <summary>导入日期,音频入库的时间</summary>
|
|
||||||
public DateTime DateAdded { get; set; }
|
|
||||||
|
|
||||||
/// <summary>修改日期,音频创建或录制的日期</summary>
|
|
||||||
public DateTime OriginalModificationDate { get; set; }
|
|
||||||
|
|
||||||
/// <summary>创建时间,音频文件的原始创建时间</summary>
|
|
||||||
public DateTime OriginationTime { get; set; }
|
|
||||||
|
|
||||||
public DateTime? ReleaseDate { get; set; }
|
public DateTime? ReleaseDate { get; set; }
|
||||||
|
|
||||||
public string? TrackYear { get; set; }
|
public string? TrackYear { get; set; }
|
||||||
@@ -155,7 +159,7 @@ public class FileMeta
|
|||||||
public bool? IsEdited { get; set; }
|
public bool? IsEdited { get; set; }
|
||||||
|
|
||||||
/// <summary>是否已分割,布尔值,标记是否从长文件中分割出来</summary>
|
/// <summary>是否已分割,布尔值,标记是否从长文件中分割出来</summary>
|
||||||
public int? IsSplit { get; set; }
|
public bool? IsSplit { get; set; }
|
||||||
|
|
||||||
/// <summary>位置,录音地点或存储位置</summary>
|
/// <summary>位置,录音地点或存储位置</summary>
|
||||||
public string? Location { get; set; }
|
public string? Location { get; set; }
|
||||||
@@ -9,6 +9,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Dapper" Version="2.1.72" />
|
<PackageReference Include="Dapper" Version="2.1.72" />
|
||||||
<PackageReference Include="System.Data.SQLite" Version="2.0.3" />
|
<PackageReference Include="System.Data.SQLite" Version="2.0.3" />
|
||||||
|
<PackageReference Include="z440.atl.core" Version="7.12.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
namespace OCES.Resonance.Core;
|
||||||
|
|
||||||
|
public static class Database
|
||||||
|
{
|
||||||
|
internal static bool AddEntry()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user