在图片框 C# 中显示 mp3 图稿

本文关键字:显示 mp3 图稿 | 更新日期: 2023-09-27 18:32:30

我正在创建一个音乐播放器,在播放音乐时,我想在图片框中显示当前mp3的艺术品。我上网了,但找不到解决方案。所以请帮忙。

编辑:我想从ID3标签中获取艺术品。

提前致谢

在图片框 C# 中显示 mp3 图稿

您可以使用 taglib 轻松完成此操作。

我创建了一个简单的应用程序来显示这一点。应用程序包含以下内容:

  • 一种叫做coverPictureBox PictureBox
  • 一种叫做browseButton Button
  • 一个叫openFileDialogOpenFileDialog

在我的主窗体的构造函数中,我将openFileDialog的默认扩展名设置为 mp3 并防止多个文件选择:

openFileDialog.DefaultExt = "mp3";
openFileDialog.Filter = "MP3 Files (*.mp3)|*.mp3";
openFileDialog.Multiselect = false;

在按钮的 Click 事件处理程序中:

private void coverButton_Click(object sender, EventArgs e)
{
    var dialogResult = openFileDialog.ShowDialog(this);
    if (dialogResult == DialogResult.OK)
    {
        TagLib.File file = TagLib.File.Create(openFileDialog.FileName);
        var mStream = new MemoryStream();
        var firstPicture = file.Tag.Pictures.FirstOrDefault();
        if (firstPicture != null)
        {
            byte[] pData = firstPicture.Data.Data;
            mStream.Write(pData, 0, Convert.ToInt32(pData.Length));
            var bm = new Bitmap(mStream, false);
            mStream.Dispose();
            coverPictureBox.Image = bm;
        }
        else
        {
            // set "no cover" image
        }
    }
}

您可以使用 TagLib 来实现此目的。 https://github.com/mono/taglib-sharp

此问题包含一个答案,显示如何在 Windows 窗体图片框中显示 MP3 文件中的图片:带有标记库的 C# mp3 ID 标记 - 专辑封面

这包含使用 WPF

时的正确方法:使用 taglib 在 WPF 的图像框中显示封面艺术