예제 #1
0
        // 11/25/2014 by aldentea : 2引数版のバグ(保存がなされていなかった)を修正.
        // 09/03/2013 by aldentea : 2引数版を用意.
        // 01/17/2008 by aldente : ~Accessorに移植.
        // 05/24/2007 by aldente : static化
        // 05/23/2007 by aldente
        #region *[static]ID3タグを書き込み(UpdateInfo)
        //public static void UpdateInfo(SongInfo info, string filename, byte charCode)
        /// <summary>
        /// ID3タグに曲情報を書き込みます.今のところID3v2.3で決め打ちです.
        /// </summary>
        /// <param name="title">曲のタイトル.</param>
        /// <param name="artist">曲のアーティスト.</param>
        /// <param name="sabipos">曲のサビ位置(秒).</param>
        /// <param name="startpos">曲の再生開始位置(秒).</param>
        /// <param name="stoppos">曲の停止位置(秒).</param>
        /// <param name="filename">タグを書き込むmp3ファイル名.</param>
        /// <param name="charCode">文字コードを指定するbyte型数値.現在未使用?</param>
        public static async Task UpdateInfo(string title, string artist, decimal sabipos, decimal startpos, decimal stoppos, string filename, byte charCode)
        {
            IID3Tag tag = await ReadFile(filename);

            if (tag == null)
            {
                tag = new ID3v23Tag();
            }
            tag.Title    = title;
            tag.Artist   = artist;
            tag.SabiPos  = sabipos;
            tag.StartPos = startpos;
            tag.StopPos  = stoppos;

            await tag.WriteTo(filename);
        }
예제 #2
0
 // 12/25/2007 by aldente
 #region *他のタグとマージ(Merge)
 public void Merge(IID3Tag another_tag)
 {
     if (artist == string.Empty)
     {
         artist = another_tag.Artist;
     }
     if (title == string.Empty)
     {
         title = another_tag.Title;
     }
     if (SabiPos == 0.0M)
     {
         SabiPos = another_tag.SabiPos;
     }
     // 他のプロパティについては保持できないので処理を行わない.
 }
예제 #3
0
        /// <summary>
        /// 指定したタグの情報を指定したファイルに書き込みます.
        /// ※いまのところ,タイトル・アーティスト・サビ位置のみを書き込んでいます.
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="newTag"></param>
        public static async Task UpdateInfo(string fileName, IID3Tag newTag)
        {
            var original_tag = await MP3TagAccessor.ReadFile(fileName);

            if (original_tag == null)
            {
                await newTag.WriteTo(fileName);
            }
            else
            {
                // 元のタグに新しいタグの情報を書き込んで保存する.
                // 全てを更新していいのか?
                original_tag.Title   = newTag.Title;
                original_tag.Artist  = newTag.Artist;
                original_tag.SabiPos = newTag.SabiPos;
                //tag.StartPos = startpos;
                //tag.StopPos = stoppos;
                await original_tag.WriteTo(fileName);
            }
        }
예제 #4
0
 // 12/25/2007 by aldente
 #region *他のタグとマージ(Merge)
 public void Merge(IID3Tag another_tag)
 {
     if (Artist == string.Empty)
     {
         Artist = another_tag.Artist;
     }
     if (Title == string.Empty)
     {
         Title = another_tag.Title;
     }
     if (SabiPos == 0.0M)
     {
         SabiPos = another_tag.SabiPos;
     }
     if (StartPos == 0.0M)
     {
         StartPos = another_tag.StartPos;
     }
     if (StopPos == 0.0M)
     {
         StopPos = another_tag.StopPos;
     }
 }