好吧,我正在制作一个简单的 winform 来创建一个包含各种歌曲路径的文本文件。这只是我一直在研究的可视化器/音频播放器的一个简单的播放列表(使用 XNA、C# 和 Bass.Net)。我想使用 TagLib 访问和显示歌曲标题、艺术家以及对播放列表进行排序。
这是我一直在使用的代码:
private void button1_Click(object sender, EventArgs e)
{
selectPlaylist.ShowDialog();
string filePath = string.Empty;
if (selectPlaylist.FileName.EndsWith(".txt"))
{
StreamReader fInput = new StreamReader(selectPlaylist.FileName);
playlistName = fInput.ReadLine();
playlistNameTextBox.Text = playlistName;
while (!fInput.EndOfStream)
{
filePath = fInput.ReadLine();
if (!filePath.Contains(":\\")) continue;
songInfo.Add(TagLib.File.Create(filePath).Tag); //List<TagLib.Tag>
songs.Add(filePath); //List<string>
}
songNamesComboBox.DataSource = songs;
fInput.Close();
fInput = null; //don't even know if I need this
}
}
无论我使用什么文件,所有标签属性/属性都是空的。我创建了一个控制台应用程序并做了同样的事情(创建一个文件并将其标签保存到一个变量中)并且能够正确访问标签信息。
TagLib.Tag tag = TabLib.File.Create("D:\\Music\\Electronic Music\\" +
"Instrumental Core\\The Angels Among Demons.mp3").Tag;
Console.WriteLine(tag.Title);
我对 C# 有点陌生,但我不知道我做错了什么。为什么后者(控制台应用程序)可以工作,但我的 winform 不行?