我見過很多解決方案編輯藝術家和專輯信息等,但有沒有辦法編輯mp3的數據中的歌詞?有這方面的軟件,但我問是否有方法在C#中編程。假設我在所有音樂文件的文本文件中都有歌詞,我如何將它們放入mp3文件中?編輯mp3的id3歌詞數據c#
謝謝。
我見過很多解決方案編輯藝術家和專輯信息等,但有沒有辦法編輯mp3的數據中的歌詞?有這方面的軟件,但我問是否有方法在C#中編程。假設我在所有音樂文件的文本文件中都有歌詞,我如何將它們放入mp3文件中?編輯mp3的id3歌詞數據c#
謝謝。
有這個內部沒有內置的解決方案,你將不得不使用一個外部庫,如這些:
http://sourceforge.net/projects/csid3lib/
後者看起來更完整且功能豐富。
例如,要獲取文件的歌詞:
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);
}
我相信通過這兩個庫的文檔看後,你可以找到如何分配的歌詞。
一些快速的谷歌搜索揭示了這一點。也許它可能適合你?
看來之後我發現他們也轉移到http://id3.codeplex.com/ –
我有點困惑於這個,我不知道如何導入dll的和這樣的事情,但與其他來源,我現在可以修改歌詞,所以唯一剩下的就是輕鬆下載歌詞。如果你知道一個簡單的方法.. :) – weiszam
好吧,我有點理解第一次做什麼。現在,如果我在文本中有歌詞,我想我可以將它保存到mp3文件中。但是我不明白的是如何從ChartLyrics中獲得歌詞。對我而言,它不承認InfoProvider和許多其他事情。 – weiszam
但是非常感謝,至少現在我可以從某些事情開始。 – weiszam
@weiszam你把所有正確的用法放在你的文件中嗎? –