C# winform 获取mp3相关信息(名称,歌手,专辑图片等)

最近在用winform做一个音乐播放器,在数据获取这块我碰到了一点问题,就是如何动态获取当前选取的MP3文件的专辑图片。在网上找了相关的资料,奈何才疏学浅,没看懂如何使用,后来又了解到TagLib可以解决这个需求,于是自己试了试,确实比较方便。

首先引用TagLib.dll,直接在vs的NuGet包管理中下载:


C# winform 获取mp3相关信息(名称,歌手,专辑图片等)_第1张图片
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;
        }

结语,例子中只例举部分属性,其余的大家可以自己查看。

原创文章,转载请注明出处~

你可能感兴趣的:(C# winform 获取mp3相关信息(名称,歌手,专辑图片等))