我更感谢sql表中的100,000个mp3链接。我需要从每首歌曲链接中获取专辑/艺术家信息。有什么办法,我可以在不下载歌曲的情况下得到它。我要问的是,如果我下载每首歌,我的硬盘上会占用很大的空间,这是我不想要的。此外,下载所有歌曲将花费大量时间。
我可以使用
下载歌曲WebClient Client = new WebClient ();
Client.DownloadFile("http://myserver.com/indie/band1.mp3", "band1.mp3");
和
TagLib
获取歌曲信息。
我有哪些最佳选择?
此致
Paraminder
答案 0 :(得分:0)
下载文件 - >提取信息 - >删除文件。 ===>这样你就解决了太空问题。
无论如何都不提取文件的信息(在扩展名和名称旁边)而不读取它的标题。
答案 1 :(得分:0)
Taglib 可以帮助您获取歌曲标签中实际的所有信息。但为此你必须自己获得歌曲。有些人甚至可能根本没有适当的标签。
因此,您应该尝试从网络上的某个歌曲数据库中获取元数据,例如freeDB, MusizicBraint, GD3, All Media Guid or Discogs
。有些是免费的,其他人可能会收取使用它们的费用,有些可能会限制访问合理数量的请求。
要考虑的另一件事是所有标题都是可预测的格式。我的收藏有大多数文件名以这种方式编码:“艺术家 - 曲目 - 标题”。对于混音,它是“Track - Artist - Title”。你从哪里下载它们?也许一个合法的来源在下载之前还有歌曲数据的API ..?
答案 2 :(得分:0)
您可以使用for循环功能来执行此操作。因此,首先阅读每个下载链接的sql表,并将其添加到应用程序的列表视图中。
然后使用for循环,您可以逐个读取链接并下载文件,获取信息并将其保存为任何文件夹中的文件。完成后,删除音乐文件,它将继续循环播放。
答案 3 :(得分:0)
无需下载文件,您可以使用SQLCLR完成所有操作。只需创建一个程序集即可从BLOB读取标记并将其作为函数添加到数据库中。
此外,我建议您将提取的标签保存在数据库的XML类型列中,以便轻松查询。