最近在用winform做一个音乐播放器,在数据获取这块我碰到了一点问题,就是如何动态获取当前选取的MP3文件的专辑图片。在网上找了相关的资料,奈何才疏学浅,没看懂如何使用,后来又了解到TagLib可以解决这个需求,于是自己试了试,确实比较方便。
首先引用TagLib.dll,直接在vs的NuGet包管理中下载:
image.png
然后调用文件
private void bunifuFlatButton3_Click(object sender, EventArgs e)
{
//获取指定文件夹中的MP3文件
var x = System.IO.Directory.GetFiles(@"D:\CloudMusic", "*.mp3", SearchOption.AllDirectories);
var y = x.Length;
//将得到的文件实例化,x[1]为MP3路径
TagLib.File xxxx = TagLib.File.Create(x[1]);
//歌曲属性均在实例文件的tag属性属性中
string artist = xxxx.Tag.FirstArtist;
string title = xxxx.Tag.Title;
不一定每首歌都有专辑图片,需要判断
if(xxxx.Tag.Pictures.Length>=1)
{
//tag中的图片信息为byte数组,需要用函数进行转化
byte[] bin = xxxx.Tag.Pictures[0].Data.Data;
//pictureBox2.Image = ReturnPhoto(bin);//转化函数
}
//string image = xxxx.Tag.Pictures[0].;
}
图片转化函数
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}
结语,例子中只例举部分属性,其余的大家可以自己查看。
原创文章,转载请注明出处~
网友评论