精华内容
下载资源
问答
  • 小程序修改MP3属性

    2021-01-14 14:31:08
    修改MP3属性,可以修改单个文件,也可以批量修改多个文件
  • 好用的批量修改MP3文件歌手,标题属性
  • 修改MP3属性

    2011-10-25 17:33:00
    未分类 Tags: .net 3.0, .net 3.5, .Net 4.0, .net 编程心得, 技术随笔 Comments: 1 Comment Published on: 2009 年 12 月 02 日 最近在处理一批下载的评书mp3文件时,需要把它们的一些属性修改为有规律的样式,...

    by 蝈蝈俊.net

    Categories: 未分类

    Tags: .net 3.0, .net 3.5, .Net 4.0, .net 编程心得, 技术随笔

    Comments: 1 Comment

    Published on: 2009 年 12 月 02 日

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

    要修改的属性如下:

    image

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

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

    WindowsAPICodePack 在下面地址可以下载:

    http://code.msdn.microsoft.com/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文件属性
             <summary>
            /// 标题
            /// </summary>
            [MediaProperty("Title")]
            public string Title { get; set; }
    
            /// <summary>
            /// 子标题
            /// </summary>
            [MediaProperty("Media.SubTitle")]
            public string SubTitle { get; set; }
    
            /// <summary>
            /// 星级
            /// </summary>
            [MediaProperty("Rating")]
            public uint? Rating { get; set; }
    
            /// <summary>
            /// 备注
            /// </summary>
            [MediaProperty("Comment")]
            public string Comment { get; set; }
    
            /// <summary>
            /// 艺术家
            /// </summary>
            [MediaProperty("Author")]
            public string Author { get; set; }
    
            /// <summary>
            /// 唱片集
            /// </summary>
            [MediaProperty("Music.AlbumTitle")]
            public string AlbumTitle { get; set; }
    
            /// <summary>
            /// 唱片集艺术家
            /// </summary>
            [MediaProperty("Music.AlbumArtist")]
            public string AlbumArtist { get; set; }
    
            /// <summary>
            /// 年
            /// </summary>
            [MediaProperty("Media.Year")]
            public uint? Year { get; set; }
    
            /// <summary>
            /// 流派
            /// </summary>
            [MediaProperty("Music.Genre")]
            public string Genre { get; set; }
    
            /// <summary>
            /// #
            /// </summary>
            [MediaProperty("Music.TrackNumber")]
            public uint? TrackNumber { get; set; }
    
            /// <summary>
            /// 播放时间
            /// </summary>
            [MediaProperty("Media.Duration")]
            public string Duration { get; private set; }
    
            /// <summary>
            /// 比特率
            /// </summary>
            [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))
                {
                    var mediaInfo = obj.Properties;
                    foreach (var properItem in this.GetType().GetProperties())
                    {
                        var mp3Att = properItem.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                        var shellProper = mediaInfo.GetProperty("System." + mp3Att);
                        var value = shellProper == null ? null : shellProper.ValueAsObject;
    
                        if (value == null)
                        {
                            continue;
                        }
    
                        if (shellProper.ValueType == typeof(string[]))    //艺术家,流派等多值属性
                        {
                            properItem.SetValue(this, string.Join(";", value as string[]), null);
                        }
                        else if (properItem.PropertyType != shellProper.ValueType)    //一些只读属性,类型不是string,但作为string输出,避免转换 如播放时间,比特率等
                        {
                            properItem.SetValue(this, value == null ? "" : shellProper.FormatForDisplay(PropertyDescriptionFormat.Default), null);
                        }
                        else
                        {
                            properItem.SetValue(this, value, null);
                        }
                    }
                }
            }
    
            public void Commit(string mp3Path)
            {
                var old = new MediaTags(mp3Path);
    
                using (var obj = ShellObject.FromParsingName(mp3Path))
                {
                    var mediaInfo = obj.Properties;
                    foreach (var proper in this.GetType().GetProperties())
                    {
                        var oldValue = proper.GetValue(old, null);
                        var newValue = proper.GetValue(this, null);
    
                        if (oldValue == null && newValue == null)
                        {
                            continue;
                        }
    
                        // 这里做了修改  郭红俊 20091202
                           // 原先在旧值存在,新值没有给出时,会有空对象引用的bug
                        //if (oldValue == null || !oldValue.Equals(newValue))
    
                        // 新的逻辑 新值存在时, 则替换旧值
                        if ((newValue != null) && (newValue.ToString().Trim().Length > 0) && (newValue != oldValue))
                        {
                            var mp3Att = proper.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                            var shellProper = mediaInfo.GetProperty("System." + mp3Att);
                            Console.WriteLine(mp3Att);
    
                            if (newValue == null) newValue = string.Empty;
    
                            SetPropertyValue(shellProper, newValue);
                        }
                    }
                }
            }
    
            #region SetPropertyValue
            static void SetPropertyValue(IShellProperty prop, object value)
            {
                if (prop.ValueType == typeof(string[]))        //只读属性不会改变,故与实际类型不符的只有string[]这一种
                {
                    string[] values = (value as string).Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    (prop as ShellProperty<string[]>).Value = values;
                }
                if (prop.ValueType == typeof(string))
                {
                    (prop as ShellProperty<string>).Value = value as string;
                }
                else if (prop.ValueType == typeof(ushort?))
                {
                    (prop as ShellProperty<ushort?>).Value = value as ushort?;
                }
                else if (prop.ValueType == typeof(short?))
                {
                    (prop as ShellProperty<short?>).Value = value as short?;
                }
                else if (prop.ValueType == typeof(uint?))
                {
                    (prop as ShellProperty<uint?>).Value = value as uint?;
                }
                else if (prop.ValueType == typeof(int?))
                {
                    (prop as ShellProperty<int?>).Value = value as int?;
                }
                else if (prop.ValueType == typeof(ulong?))
                {
                    (prop as ShellProperty<ulong?>).Value = value as ulong?;
                }
                else if (prop.ValueType == typeof(long?))
                {
                    (prop as ShellProperty<long?>).Value = value as long?;
                }
                else if (prop.ValueType == typeof(DateTime?))
                {
                    (prop as ShellProperty<DateTime?>).Value = value as DateTime?;
                }
                else if (prop.ValueType == typeof(double?))
                {
                    (prop as ShellProperty<double?>).Value = value as double?;
                }
            }
            #endregion
    
            #region MediaPropertyAttribute
            [AttributeUsage(AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
            sealed class MediaPropertyAttribute : Attribute
            {
                public string PropertyKey { get; private set; }
                public MediaPropertyAttribute(string propertyKey)
                {
                    this.PropertyKey = propertyKey;
                }
    
                public override string ToString()
                {
                    return PropertyKey;
                }
            }
            #endregion
        }
    
    }

    使用这个文件的一个简单范例如下:

    这个范例修改程序运行时目录下指定规范名字mp3文件的标题属性,当然其他属性也是类似的。

            private void btn_2_Click(object sender, RoutedEventArgs e)
            {
                MediaTags mt = new MediaTags(Environment.CurrentDirectory);
    
                for (int i = 1; i <= 16; i++)
                {
                    string fileName = string.Format("{0}\\童林传_{1:000}.mp3", Environment.CurrentDirectory, i);
                    mt.Title = string.Format("童林传 {0:000}",i);
                    mt.Author = "单田芳";
                    mt.Commit(fileName);
                }
    
            }

    参考资料:

    用C#修改Mp3文件属性
    http://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html

    转载于:https://www.cnblogs.com/anakin/archive/2011/10/25/2224192.html

    展开全文
  • Python 修改 mp3 属性

    2014-04-02 16:50:00
    网上下载了一个新概念第三册60课的听力包,兴高采烈的放进手机里面才傻了眼,每一课的序号与标题竟然对不上号!...上网查到python的扩展库eyeD3可以处理mp3属性,马上试一下: eyeD3官网:http:...

      网上下载了一个新概念第三册60课的听力包,兴高采烈的放进手机里面才傻了眼,每一课的序号与标题竟然对不上号!想要听哪一课岂不是要瞎蒙!在电脑上查看mp3的属性发现文件的名称是对的,就是里面的一个Title属性莫名其妙的乱序了,而手机就是按照Title来显示的。当然我不会蛋抽一个一个的改回来!上网查到python的扩展库eyeD3可以处理mp3属性,马上试一下:

     

    eyeD3官网:http://eyed3.nicfit.net/

      官网里面有安装包,也可以直接用pip和virtuallenv来安装,要求是2.6或者2.7的python,我用的是2.7,直接下载了离线包,解压后进入文件夹找到setup.py文件,运行

    python setup.py install

    就可以进行安装。

      对一些属性的修改操作如下:

    import eyed3
    
    audiofile = eyed3.load("song.mp3")
    audiofile.tag.artist = u"Nobunny"
    audiofile.tag.album = u"Love Visions"
    audiofile.tag.title = u"I Am a Girlfriend"
    audiofile.tag.track_num = 4
    
    audiofile.tag.save()

       字符串前面的 u 代表unicode,也可以用unicode()来进行转换。

      这样就可以轻松愉快的修改mp3属性了,而且还能顺带将原来带有"xxx英语学习网"给去掉哇哈(处女座看到笑了)

     

    转载于:https://www.cnblogs.com/jolin123/p/3641059.html

    展开全文
  • 批量修改MP3标题艺术家唱片集注释等信息
  • 用C#修改Mp3文件属性

    2019-07-27 05:20:47
    最近在处理一批下载的评书mp3文件时,需要把它们的一些属性修改为有规律的样式,以便自己播放时知道是播放的那首。 要修改属性如下: 修改的方法我是使用的...
     

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

    要修改的属性如下:

    image

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

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

    WindowsAPICodePack 在下面地址可以下载:

    http://code.msdn.microsoft.com/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))
                {
                    var mediaInfo = obj.Properties;
                    foreach (var properItem in this.GetType().GetProperties())
                    {
                        var mp3Att = properItem.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                        var shellProper = mediaInfo.GetProperty("System." + mp3Att);
                        var value = shellProper == null ? null : shellProper.ValueAsObject;
    
                        if (value == null)
                        {
                            continue;
                        }
    
                        if (shellProper.ValueType == typeof(string[]))    //艺术家,流派等多值属性
                        {
                            properItem.SetValue(this, string.Join(";", value as string[]), null);
                        }
                        else if (properItem.PropertyType != shellProper.ValueType)    //一些只读属性,类型不是string,但作为string输出,避免转换 如播放时间,比特率等
                        {
                            properItem.SetValue(this, value == null ? "" : shellProper.FormatForDisplay(PropertyDescriptionFormat.Default), null);
                        }
                        else
                        {
                            properItem.SetValue(this, value, null);
                        }
                    }
                }
            }
    
            public void Commit(string mp3Path)
            {
                var old = new MediaTags(mp3Path);
    
                using (var obj = ShellObject.FromParsingName(mp3Path))
                {
                    var mediaInfo = obj.Properties;
                    foreach (var proper in this.GetType().GetProperties())
                    {
                        var oldValue = proper.GetValue(old, null);
                        var newValue = proper.GetValue(this, null);
    
                        if (oldValue == null && newValue == null)
                        {
                            continue;
                        }
    
                        // 这里做了修改  郭红俊 20091202
                           // 原先在旧值存在,新值没有给出时,会有空对象引用的bug
                        //if (oldValue == null || !oldValue.Equals(newValue))
    
                        // 新的逻辑 新值存在时, 则替换旧值
                        if ((newValue != null) && (newValue.ToString().Trim().Length > 0) && (newValue != oldValue))
                        {
                            var mp3Att = proper.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                            var shellProper = mediaInfo.GetProperty("System." + mp3Att);
                            Console.WriteLine(mp3Att);
    
                            if (newValue == null) newValue = string.Empty;
    
                            SetPropertyValue(shellProper, newValue);
                        }
                    }
                }
            }
    
            #region SetPropertyValue
            static void SetPropertyValue(IShellProperty prop, object value)
            {
                if (prop.ValueType == typeof(string[]))        //只读属性不会改变,故与实际类型不符的只有string[]这一种
                {
                    string[] values = (value as string).Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
                    (prop as ShellProperty<string[]>).Value = values;
                }
                if (prop.ValueType == typeof(string))
                {
                    (prop as ShellProperty<string>).Value = value as string;
                }
                else if (prop.ValueType == typeof(ushort?))
                {
                    (prop as ShellProperty<ushort?>).Value = value as ushort?;
                }
                else if (prop.ValueType == typeof(short?))
                {
                    (prop as ShellProperty<short?>).Value = value as short?;
                }
                else if (prop.ValueType == typeof(uint?))
                {
                    (prop as ShellProperty<uint?>).Value = value as uint?;
                }
                else if (prop.ValueType == typeof(int?))
                {
                    (prop as ShellProperty<int?>).Value = value as int?;
                }
                else if (prop.ValueType == typeof(ulong?))
                {
                    (prop as ShellProperty<ulong?>).Value = value as ulong?;
                }
                else if (prop.ValueType == typeof(long?))
                {
                    (prop as ShellProperty<long?>).Value = value as long?;
                }
                else if (prop.ValueType == typeof(DateTime?))
                {
                    (prop as ShellProperty).Value = value as DateTime?;
                }
                else if (prop.ValueType == typeof(double?))
                {
                    (prop as ShellProperty<double?>).Value = value as double?;
                }
            }
            #endregion
    
            #region MediaPropertyAttribute
            [AttributeUsage(AttributeTargets.Property, Inherited = false, AllowMultiple = true)]
            sealed class MediaPropertyAttribute : Attribute
            {
                public string PropertyKey { get; private set; }
                public MediaPropertyAttribute(string propertyKey)
                {
                    this.PropertyKey = propertyKey;
                }
    
                public override string ToString()
                {
                    return PropertyKey;
                }
            }
            #endregion
        }
    
    }

     

    使用这个文件的一个简单范例如下:

    这个范例修改程序运行时目录下指定规范名字mp3文件的标题属性,当然其他属性也是类似的。

            private void btn_2_Click(object sender, RoutedEventArgs e)
            {
                MediaTags mt = new MediaTags(Environment.CurrentDirectory);
    
                for (int i = 1; i <= 16; i++)
                {
                    string fileName = string.Format("{0}\\童林传_{1:000}.mp3", Environment.CurrentDirectory, i);
                    mt.Title = string.Format("童林传 {0:000}",i);
                    mt.Author = "单田芳";
                    mt.Commit(fileName);
                }
    
            }

     

    参考资料:

    用C#修改Mp3文件属性 
    http://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html

    转载于:https://www.cnblogs.com/MaxWoods/archive/2010/02/01/1661341.html

    展开全文
  • VBA修改MP3属性信息(包括专辑名、作家等),压缩包里有DLL复制到C:\windows目录里,运行xls中的程序(alt+F11打开),程序只是一个例子,下面有注释说明怎么操作其他属性
  • 修改mp3文件属性 ```python # -*- coding: utf-8 -*- import os import eyed3 path = os.getcwd() files= os.listdir(path) for file in files: tp = file[-3:] #print(tp) if tp != "mp3": continue ...

    修改mp3文件属性

    # -*- coding: utf-8 -*-
    
    import  os
    import eyed3
    path = os.getcwd()
    files= os.listdir(path)
    for file in files:
    	tp = file[-3:]
    	#print(tp)
    	if tp != "mp3":
    		continue
    	filename = file[:-4]
    	print(filename)
    	os.rename(file, "tst.mp3")
    	#audio = eyed3.load(path+"\\"+file)
    	audio = eyed3.load("tst.mp3")
    	audio.tag.title = filename
    	audio.tag.artist = u"徐涛"
    	audio.tag.album = u"2020考研政治强化班"
    	audio.tag.save()
    	os.rename("tst.mp3", file)
    	
    
    展开全文
  • 批量更改mp3文件的标题

    千次阅读 2010-08-02 11:15:21
    将所有要更改标题的歌曲添加到播放列表中; 2.再通过“Ctrl+A”全选这些文件; 3.然后再右击鼠标并选择“批量文件属性”项; 4.在打开的窗口中单击“从文件名 猜测标签”按钮; 5.在打开的窗口中将“请输入歌曲文件名的...
  • 用千千静听修改mp3属性

    千次阅读 2007-09-16 22:44:00
    就想办法更改他们的属性,也希望对正在寻觅这种问题解决方式的朋友有帮助 :)方法。1.在播放列表选中所有的歌曲( CTRL+A ).2.右键――批量文件属性3.从文件名猜测标签,在弹出的对话框中输入%(Title)(%(Artist))4....
  • 批量修改MP3文件唱片标题信息

    万次阅读 2018-09-06 19:42:34
    https://www.mp3tag.de/en/ 安装后界面如下,如果不是中文,点击tool,下面有个options,里面有个language选项,可以切换语言。 点击下面这个按钮可以选择全部文件,然后左侧可以设置保留和留白或者自定义。 ...
  • 从网上下了些脱口秀mp3,准备回家的时候在路上听听。下载之后发现文件名都是以“某某网整理”开头,导入到手机之后歌名长得连有用的信息都看不到了。...于是Google了一下怎样用代码修改这破属性,发现那
  • 如何批量实现通过MP3标题重命名文件名本文介绍对MP3格式进行重命名操作,首先通过文件属性获取MP3文件标题Title,然后用标题对文件名进行重命名。 方法通过C#实现,共分两步: 1通过ShellClass获得文件属性 2以mp3...
  • Mp3Tag修改

    2014-04-24 11:12:59
    可批量编辑MP3属性,艺术家,唱片标题,发行年,流派等等
  • python实现批量通过MP3标题重命名文件名 需求 从MP3文件详细信息中提取出标题,歌手,专辑信息,用标题重命名MP3文件,用歌手和专辑对文件进行"歌手/专辑"分组 整体思路 1.遍历文件夹下的文件 2.针对每个文件,...
  • ogg音频文件有艺术家,标题,专辑等属性, 请问有c#如何进行修改, 找了好久也没找到有ogg的开发库,MP3格式的倒是很容易处理。 抱歉没C币,各位有知道的还望指点一下
  • ID3V2是目前主流的mp3标签格式,特别是做为车载音乐播放器等一些无法连接到互联网的应用场景上,我们无法通过网络获得歌曲的信息,因此,读取ID3V2或者ID3V1标签就是一个很好的解决方案,这里主要记录的是在qt上通过...
  • 我们手机电脑上除了存放音乐等音频文件之外,还可能存放一些英语听力音频、老师知识点讲解音频、会议记录音频等,这些第三方或者自制的音频文件一般是没有艺术家,专辑,类型,标题,流派等音频信息的,而当我们把这些第...
  • 最近super simple song很火,本人有sss的mp4视频文件和歌词本,为了让歌词本可以点读,需要自制毛毛虫点读的音频,但是sss的歌曲有180多首,所以想通过程序批量完成。...3)MP3文件属性修改 下面的程序及是批量完
  • 使用千千静听修改唱片标题

    千次阅读 2009-11-20 11:02:00
    一批MP3,文件名不同,但是在播放器里面显示的都是一样的,如何修改它们显示的标题呢? 选中这些mp3,用“千千静听”打开,然后全选,选择“批量属性”,然后在标题上面选择“根据文件名猜测”即可。。
  • 利用python修改mp3的标签

    千次阅读 2013-10-08 22:19:20
    由于网络上下载的mp3的标签大多数都不规范,因此一直想着个机会做一个mp3标签修改的程序。今天利用空余时间使用python写了一个修改程序 第一步:安装mp3的标签编辑程序,具体资源参照本人上传的资源 点击打开...
  • WAV音乐文件无法修改标题

    千次阅读 2020-09-10 10:44:35
    历程,首先是下载一个软件MP3tag试图修改,结果无法访问,后来在网上搜到,说是权限问题,但是权限更改已经全部许可了,后来拖到桌面也无法。再尝试手动修改无法修改。后来看到文件格式是WAV,搜搜了,是因为格式...
  • 批量修改MP3文件信息

    千次阅读 2020-04-14 23:22:19
    前两天本人在整理自己的歌单时(题外话,本人是一个热衷音乐的程序员噢,哈哈),发现之前下载的很多MP3文件里的歌手,标题等信息对不上,很多都是错的。对于患有“强迫症”的本人来说,当然不会允许这种情况出现啊...
  • 批量修改mp3文件的title等

    千次阅读 2018-06-10 14:04:00
    批量修改mp3文件的title等 不是改文件名哦; 下载地址:https://mp3tag.en.softonic.com/ 帮助文档:file:///C:/Program%20Files%20(x86)/Mp3tag/help/start_firststeps.html 学习: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,404
精华内容 2,961
关键字:

修改mp3属性标题