Пример #1
0
        // 同期実行版。いるかな?

        // 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);
            }
        }
Пример #2
0
 // 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));
     }
 }