Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61071
  • 博文数量: 13
  • 博客积分: 530
  • 博客等级: 中士
  • 技术积分: 125
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-18 16:14
文章分类

全部博文(13)

文章存档

2010年(6)

2009年(7)

我的朋友

分类:

2010-03-25 13:37:26

最近在处理一批下载的评书mp3文件时,需要把它们的一些属性做修改为有规律的样式,以便自己播放时知道是播放的那首。

要修改的属性如下:

修改的方法我是使用的 http://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html  介绍的 使用 WindowsAPICodePack 的方法来修改。

但是上述地址给出的函数有个小bug,且具体如何用代码实现也没有说明,所以整理了这篇博客,

WindowsAPICodePack 在下面地址可以下载:

我下载的是 Windows API Code Pack 1.0.1  中的

WindowsAPICodePack.zip 
source code, 6927K, uploaded Nov 19

这个是源文件, 下载后打开可以看到 WindowsAPICodePack.sln 文件, 用 Visual Studio 编译后,我们可以得到下面2个文件:

Microsoft.WindowsAPICodePack.dll

Microsoft.WindowsAPICodePack.Shell.dll

这就是我们项目中要引用的两个文件。

引用这两个文件后,再在项目中增加一个文件,内容如下(注意把namespace修改为你自己的):

这个文件中也就是我说的http://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html  介绍的有小bug的文件,有错误的部分看下面我的注释。文件内容如下:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.WindowsAPICodePack.Shell;
using Microsoft.WindowsAPICodePack.Shell.PropertySystem;
using System.Reflection;

namespace _52PS_WpfApplication
{
    public class MediaTags
    {
        #region Mp3文件属性
        ////



        /// 标题

        ///


        [MediaProperty("Title")]
        public string Title { get; set; }

        ///

        /// 子标题

        ///


        [MediaProperty("Media.SubTitle")]
        public string SubTitle { get; set; }

        ///

        /// 星级

        ///


        [MediaProperty("Rating")]
        public uint? Rating { get; set; }

        ///

        /// 备注

        ///


        [MediaProperty("Comment")]
        public string Comment { get; set; }

        ///

        /// 艺术家

        ///


        [MediaProperty("Author")]
        public string Author { get; set; }

        ///

        /// 唱片集

        ///


        [MediaProperty("Music.AlbumTitle")]
        public string AlbumTitle { get; set; }

        ///

        /// 唱片集艺术家

        ///


        [MediaProperty("Music.AlbumArtist")]
        public string AlbumArtist { get; set; }

        ///

        /// 年

        ///


        [MediaProperty("Media.Year")]
        public uint? Year { get; set; }

        ///

        /// 流派

        ///


        [MediaProperty("Music.Genre")]
        public string Genre { get; set; }

        ///

        /// #

        ///


        [MediaProperty("Music.TrackNumber")]
        public uint? TrackNumber { get; set; }

        ///

        /// 播放时间

        ///


        [MediaProperty("Media.Duration")]
        public string Duration { get; private set; }

        ///

        /// 比特率

        ///


        [MediaProperty("Audio.EncodingBitrate")]
        public string BitRate { get; private set; }
        #endregion

        public MediaTags(string mediaPath)
        {
            //var obj = ShellObject.FromParsingName(mp3Path); //缩略图,只读

            //obj.Thumbnail.Bitmap.Save(@"R:\2.jpg");


            Init(mediaPath);
        }

        void Init(string mediaPath)
        {
            using (var obj = ShellObject.FromParsingName(mediaPath))
            管理员在2009年8月13日编辑了该文章文章。 -->
阅读(2126) | 评论(0) | 转发(0) |
0

上一篇:Hadoop-- 海量文件的分布式计算处理方案

下一篇:没有了

给主人留下些什么吧!~~