// 同期実行版。いるかな? // 01/08/2008 by aldente : ~Accessorに移植. // 05/24/2007 by aldente : static化 // 05/15/2007 by aldente #region *[static]ファイルからID3タグを読み込み(ReadFile) /// <summary> /// mp3ファイルからID3タグを読み込みます. /// タグが見つからなければnullを返します. /// </summary> /// <param name="filename">読み込むファイル名.</param> /// <returns>該当するバージョンのタグオブジェクト.</returns> public static async Task <IID3Tag> ReadFile(string fileName) { IID3Tag tag; //SongInfo info = new SongInfo(); if (!File.Exists(fileName)) { // ファイルがないぞ! return(null); } // 拡張子が"rmp"の場合は,RIFFとして開く. if (Path.GetExtension(fileName).ToLower().EndsWith("rmp")) { return(await RIFFMP3Tag.ReadFromFileAsync(fileName) as RIFFMP3Tag); } else { // ID3v2をチェック. tag = await ID3v2Tag.ReadFile(fileName); ID3v1Tag tag1 = await ID3v1Tag.ReadFile(fileName); if (tag != null) { if (tag1 != null) { tag.Merge(tag1); } return(tag); } return(tag1); } }
// 09/17/2014 by aldentea #region *[static]冒頭にあるタグのサイズを取得(GetHeaderTagSize) /// <summary> /// ファイルの冒頭にあるタグのサイズを返します. /// ID3v1のようにファイルの末尾にあるものはカウントしません. /// </summary> /// <param name="fileName"></param> /// <returns></returns> public static async Task <int> GetHeaderTagSize(string fileName) { // 拡張子が"rmp"の場合は,RIFFとして開く. if (Path.GetExtension(fileName).ToLower().EndsWith("rmp")) { // ※こちらではHM001の問題が発生するかどうかわからないので, // とりあえず0を返しておく. return(0); //return RIFFMP3Tag.ReadFromFile(fileName) as RIFFMP3Tag; } else { return(await ID3v2Tag.GetSize(fileName)); } }