我刚创建了一个小程序,可以让我更改音频文件的详细信息。
我想改变:
taglib库允许我使用完全相同的代码更改不同类型的音频文件。
对我来说,以下代码与扩展程序.m4a
和mp3
完全正常,但只要我尝试更改某些.wma
文件,就会发生奇怪的错误。< / p>
public void changeAttributes(string filePath, string title, string interpret, string album)
{
TagLib.File file = TagLib.File.Create(filePath);
file.Tag.Title = title; //Titel
file.Tag.AlbumArtists = new String[] {interpret}; //AlbumArtist
file.Tag.Performers = new String[] { interpret }; //Performers
if (!album.Equals("")) { file.Tag.Album = album; } //Album (if there is no album given, it won´t be overwritten)
if (!albumCoverPath.Equals("")) {
file.Tag.Pictures = new IPicture[] { (IPicture)new Picture(albumCoverPath) };
} //Album-Cover (if there is no image given, it won´t be overwritten)
file.Save();
}
将三个.wma-files
放入我正在测试的文件夹中后,代码停止并让我进入file.Save();
行的调试器,错误
System.ArgumentOutOfRangeException:“大小小于零。”
检查调试器中的file
- 对象时,我找不到可以解释错误发生的任何内容。
修改
删除更改AlbumArtists
的行后,代码运行正常。
在更改除AlbumArtists
之外的所有内容之后,我可以再次插入代码行,并且运行时没有错误。
谁能告诉我这种奇怪的行为是怎么来的?
有什么建议吗?