3

アーティストやアルバムの情報などを編集するための多くの解決策を見てきましたが、mp3 id3データの歌詞を編集する方法はありますか?このためのソフトウェアはありますが、C#でこれをプログラムする方法があるかどうかを尋ねています。すべての音楽ファイルのテキストファイルに歌詞があるとしましょう。それらをmp3ファイルに入れるにはどうすればよいですか。

ありがとう。

4

2 に答える 2

4

このための内部組み込みソリューションはありません。次のような外部ライブラリを使用する必要があります。

http://sourceforge.net/projects/csid3lib/

http://id3.codeplex.com/

後者はより完全に見え、機能が豊富です。

たとえば、ファイルの歌詞を取得するには、次のようにします。

string[] mp3Files = Directory.GetFiles(_mp3Directory, "*.mp3");

            InfoProvider chartLyricsProvider = new ChartLyricsInfoProvider();
            InfoProvider lyrDbLyricsProvider = new LyrDbInfoProvider();
            foreach (string mp3File in mp3Files)
            {
                Console.Write(Path.GetFileNameWithoutExtension(mp3File));

                Id3Tag tag;
                using (var mp3 = new Mp3File(mp3File))
                    tag = mp3.GetTag(Id3TagFamily.FileStartTag);
                if (tag == null)
                    continue;

                if (!tag.Artists.IsAssigned || !tag.Title.IsAssigned)
                {
                    Console.WriteLine();
                    continue;
                }

                Console.WriteLine(" ({0} - {1})", tag.Artists.Values[0], tag.Title.Value);

                Id3Tag[] lyricsTags = GetLyrics(tag, chartLyricsProvider, lyrDbLyricsProvider);
                if (lyricsTags == null || lyricsTags.Length == 0)
                    continue;

                string outputFilename = string.Format("{0} - {1}.txt", tag.Artists.Values[0], tag.Title.Value);
                string outputFile = Path.Combine(_outputDirectory, outputFilename);
                using (var lyricsWriter = new StreamWriter(outputFile, false))
                    lyricsWriter.Write(lyricsTags[0].Lyrics[0].Lyrics);

                Console.WriteLine("    {0}", outputFilename);
            }

これら両方のライブラリのドキュメントを調べた後、歌詞を割り当てる方法を見つけることができると確信しています。

于 2013-01-13T22:02:36.647 に答える
0

いくつかの簡単なグーグルはこれを明らかにしました。おそらくそれはあなたのために働くかもしれませんか?

http://sourceforge.net/projects/id3dotnet/

于 2013-01-13T22:01:31.563 に答える