精华内容
下载资源
问答
  • ogg音频文件有艺术家,标题,专辑等属性, 请问有c#如何进行修改, 找了好久也没找到有ogg的开发库,MP3格式的倒是很容易处理。 抱歉没C币,各位有知道的还望指点一下
  • 批量地方便修改MP3文件属性,例如歌手,专辑,时间,风格等
  • 毛毛虫自制音频需要将音频名称保存成RECxxxx格式(这种格式不方便自己区分音频内容),为了自己区分方便,需要将音频歌曲名称写入音频文件属性详细信息的标题中。 因此要达到目的,需要完成以下需求: 1)MP4文件...

    最近super simple song很火,本人有sss的mp4视频文件和歌词本,为了让歌词本可以点读,需要自制毛毛虫点读的音频,但是sss的歌曲有180多首,所以想通过程序批量完成。
    毛毛虫自制音频需要将音频名称保存成RECxxxx格式(这种格式不方便自己区分音频内容),为了自己区分方便,需要将音频歌曲名称写入音频文件属性详细信息的标题中。

    因此要达到目的,需要完成以下需求:
    1)MP4文件批量转换成MP3文件,通过魔影工厂即可批量转换的。
    2)MP3文件改名
    3)MP3文件属性修改
    下面的程序及是批量完成文件改名和属性修改

    import os
    import eyed3
    
    # artist 参与创作的艺术家
    # album 专辑,唱片集
    # title 标题
    def modifyMP3Property(path, artist, album, title):
        filename = os.path.basename(path).split('.')[0]
        try:
            audiofile = eyed3.load(path)
            if audiofile != None:
                audiofile.initTag()
                audiofile.tag.artist = u'%s' % artist
                audiofile.tag.album = u'%s' % album
                audiofile.tag.title = u'%s' % title
                audiofile.tag.save()
        finally:
            print()
    
    def reName():
        path=input("请输入路径(例如D:\\\\picture):")
        name=input("请输入开头名:")
        start=input("请输入开始数:")
        fileType=input("请输入后缀名(如 .jpg、.txt等等):")
        print("正在生成以"+name+start+fileType+"迭代的文件名")
        count=0
        filelist=os.listdir(path)
        filelist.sort(key=lambda filename:int(filename.split('.')[0]))
        for files in filelist:
            oldPath=os.path.join(path,files)
            if os.path.isdir(oldPath):
                continue
            modifyMP3Property(oldPath, title=files, artist=files, album=files)
            newPath=os.path.join(path,name+str(count+int(start))+fileType)
            os.rename(oldPath,newPath)
            count+=1
        print("共修改了"+str(count)+"个文件")
    
    reName()
    

    程序运行界面如下
    运行界面
    sss文件修改前
    sss
    sss文件修改后
    在这里插入图片描述

    展开全文
  • 个人比较喜欢听小说,但是下载的小说文件名字都有问题,特此编写了一个MP3文件属性修改器,批量修改的,值得收藏哦
  • 因为下了一部有声读物放手机里听,但是iphone居然不是根据文件名来显示文件,而是根据文件的属性,比如说艺术家呀,专辑呀之类...思路就是打开目录,然后一个个去处理音频文件,很简单,直接放代码了 01

    因为下了一部有声读物放手机里听,但是iphone居然不是根据文件名来显示文件,而是根据文件的属性,比如说艺术家呀,专辑呀之类的来显示,导致我无法分辨是哪个文件。数量又很多。还是写个脚本吧。

    网上找了下有处理音频的类。我已经下好了。AudioExif.class

    思路就是打开目录,然后一个个去处理音频文件,很简单,直接放代码了

    01 <?php
    02  
    03 require ('AudioExif.class.php');
    04 $AE = new AudioExif('UTF-8');
    05  
    06 // 定于需要列出的目录地址
    07 $dir "/data/ftp/ylx/book";
    08 // 用 opendir() 打开目录,失败则中止程序
    09 $handle = @opendir($dir) or die("Cannot open " . $dir);
    10 echo "Files in " . $dir ":\n";
    11 // 用 readdir 读出文件列表
    12 while($file = readdir($handle)){
    13   // 将 "." 及 ".." 排除不显示
    14   if($file != "." && $file != ".."){
    15     $name = str_replace(".mp3","",$file);
    16     $file = $dir.'/'.$file;
    17  
    18     $pa = array('Title' => $name, 'AlbumTitle' => "book");
    19     $AE->SetInfo($file, $pa);
    20  
    21   }
    22 }
    23 // 关闭目录读取
    24 closedir($handle);

    本文固定链接: http://www.qaforcode.net/archives/835 | 猪哥每日一贴

    展开全文
  • 用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

    展开全文
  • 批量修改mp3、flac的属性。在播放器播放MP3时候,文件的title、artist等信息需要正确设置才能产生last.fm的播放记录。本工具可以按照简单的规律,批量设置文件属性。 第二版 ...

    批量修改mp3、flac的属性。在播放器播放MP3时候,文件的title、artist等信息需要正确设置才能产生last.fm的播放记录。本工具可以按照简单的规律,批量设置文件的属性。 

     

     

    第二版

     

    展开全文
  • 文件属性及资源文件的使用

    千次阅读 2015-02-07 13:22:41
    一、C#文件属性1、什么是文件属性文件属性可以用来指示项目系统对应文件执行的操作。具体的操作见下文。Visual Basic和Visual C#的文件都具有4个属性:“FileName”、“BuildAcition”、“CustomTool”、”...
  • 支持文件属性更改;支持文件时间修改;支持多文件夹同时处理;支持音乐、图像改名前预览等功能。 它的主要特性包括: 1、操作简单,易上手; 2、采用先进的编辑技术; 3、支持改名预览; 4、转换不分格式; 5...
  • linux文件属性

    2019-12-17 20:40:59
    文件属性权限 权限组成: r read 4(读) w write 2 (写) execute x 1 (执行) 权限分配说明: 属主 数据创建人 权限最高 属组 数据管理者 权限次之 其他 权限最低 权限修改 ----- chmod 文件属性用户...
  • 一个VB基础学习的小程序,批量修改文件属性。与大家分享。
  • 文件类型: Linux中的文件类型和Windows有明显的区别,最大的就...普通文件可以是源代码、可执行文件、文本图片音频或者视频等,其实就是Windows的那种最基本的文件(你看目录、链接、设备文件都知道,还剩下什么...
  • 修改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 ...
  • VC++ 读取音频文件属性

    千次阅读 2011-05-13 13:09:00
    MP3的全称应为MPEG1 Layer-3 音频 文件,MPEG(Moving Picture Experts Group) 在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG 音频文件是MPEG1 标准中的声音部分,也叫MPEG 音频层,它根据压缩...
  • (电脑入门到精通网 www.58116.cn)1、文件属性(电脑入门到精通网 www.58116.cn)1)打开“我的文档”,选择一个文件,瞄准图标点右键,选择“属性”命令; (电脑入门到精通网 www.58116.cn)(电脑入门到精通网 ...
  • Linux文件属性02. Linux文件权限图解03. inode节点04. 附录 01. Linux文件属性 Linux 文件或目录的属性主要包括:文件或目录的节点、种类、权限模式、链接数量、所归属的用户和用户组、最近访问或修改的时间等...
  • Linux 文件基本属性

    千次阅读 2015-06-11 09:52:09
    Linux系统是一种典型的多用户系统,不同的用户处于不同的地位... 在Linux中我们可以使用ll或者ls –l命令来显示一个文件属性以及文件所属的用户和组,如: deng@deng-Lenovo:~$ ls -l 总用量 56 drwxrwxr-x 6
  • TagLib是KDE开源项目的一个很有用的C++函数库,它可以用于读取各种格式的音频文件的ID3信息,如歌名、歌手、专辑、采样率等,同时也可以对以上部分的属性做出修改。 2.如何获取TagLib库 我们可在此处选择最新的...
  • 文章目录文件属性第一列 权限第二列 硬链接数第三列 属主第四列 属组第五列 文件大小第六列 文件时间第七列 文件名称 文件属性 第一列 第二列 第三列 第四列 第五列 第六列 第七列 -rw-r–r-- 1 root root ...
  • Linux文件基本属性

    2020-05-18 20:40:16
    在Linux中我们可以使用ll或者ls –l命令来显示一个文件属性以及文件所属的用户和组 看这个 当为[ d ]则是目录 当为[ - ]则是文件; 若是[ l ]则表示为链接文档(link file); 若是[ b ]则表示为装置文件...
  • 文章目录Linux系统下文件种类文件的符号表示文件属性 Linux系统下文件种类 普通文件。计算机用户和操作系统用于存放数据、程序等信息的文件,一般都长期存放在外存储器(如磁盘、磁带等)中,普通文件一般又...
  • setTimeout("tab2()",600);
  • MP3属性修改

    2012-03-11 15:02:48
    MP3类型文件属性修改 用于文档的具体时间具体类型等你觉得可以更改的地方都可以更改
  • 电脑走进我们的生活了,很多人都开始依赖上它了,而系统里面的文件夹、文件等等的图标都是千篇一律的,这很容易让人产生视觉疲劳,因此有时候我们就想要更改文件图标,那么如何更改文件图标呢?下面,小编就来跟...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,895
精华内容 26,758
关键字:

修改音乐文件属性