您的足迹:首页 > 未分类 >C#获取音乐相关信息和相关问题解决

C#获取音乐相关信息和相关问题解决

TIM截图20171115143714.png


如图。

winform中需要获取音乐的相关信息,使用系统的shell32.dll这个dll库,开始的时候作者直接引用了系统自带的这个库,结果报错 一直不能解决,“System.InvalidCastException:“无法将类型为“System.__ComObject”的 COM 对象强制转换为接口类型“Shell32.Shell”。” 后来查过资料发现,是因为

系统自带的shell32.dll这个库是1.0版本的 太落后了,自己又到网上下了个1.2版本的,提供在这里给大家下载。

Interop.Shell32.rar

下面步骤如下:

1.引用下载好的shell32.dll。

2.代码如下:

    public void GetMusicInfo(string path)
        {
           // string[] Info = new string[7];
            Shell32.Shell sh = new Shell();
            Folder dir = sh.NameSpace(System.IO.Path.GetDirectoryName(path));
            FolderItem item = dir.ParseName(System.IO.Path.GetFileName(path));
            //Info[0] = "歌曲名:" + dir.GetDetailsOf(item, 21);   // MP3 歌曲名
            //Info[1] = "艺术家:" + dir.GetDetailsOf(item, 20);  //Authors
            //Info[2] = "专  辑:" + dir.GetDetailsOf(item, 14);  // MP3 专辑
            //Info[3] = dir.GetDetailsOf(item, 27);  // 获取歌曲时长
            //Info[3] = "时  长:" + Info[3].Substring(Info[3].IndexOf(":") + 1);
            //Info[4] = "类  型:" + dir.GetDetailsOf(item, 9);
            //Info[5] = "比特率:" + dir.GetDetailsOf(item, 22);
            //Info[6] = "备  注:" + dir.GetDetailsOf(item, 24);

            textEdit_Name.Text = dir.GetDetailsOf(item, 21);
            textEdit_Singer.Text = dir.GetDetailsOf(item, 20);
            textEdit_TimeLong.Text = dir.GetDetailsOf(item, 27);
            FileInfo fileInfo = new FileInfo(path);
            textEdit_Size.Text = fileInfo.Length.ToString();
            textEdit_Format.Text = fileInfo.Extension;


        }

OK,完成。






本博客所有文章如无特别注明均为原创。作者:cc复制或转载请以超链接形式注明转自 我的博客
原文地址《C#获取音乐相关信息和相关问题解决

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)