在图片框 C# 中显示 mp3 图稿
本文关键字:显示 mp3 图稿 | 更新日期: 2023-09-27 18:32:30
我正在创建一个音乐播放器,在播放音乐时,我想在图片框中显示当前mp3的艺术品。我上网了,但找不到解决方案。所以请帮忙。
编辑:我想从ID3标签中获取艺术品。
提前致谢
您可以使用 taglib 轻松完成此操作。
我创建了一个简单的应用程序来显示这一点。应用程序包含以下内容:
- 一种叫做
coverPictureBox
PictureBox
。 - 一种叫做
browseButton
Button
。 - 一个叫
openFileDialog
的OpenFileDialog
。
在我的主窗体的构造函数中,我将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 的图像框中显示封面艺术