精华内容
下载资源
问答
  • 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

    展开全文
  • 用C#修改Mp3文件属性

    2009-09-27 00:57:00
    这里主要谈一下在写这个工具中的对用C#修改Mp3文件属性的一点心得 MP3及wma等大多是通过ID3 Tag标记标题,歌手,出版日期等歌曲信息的,目前ID3主要用的是ID3v1及ID3v2两种,目前大部分mp3播放器也都支持这两种...

    前段时间买了个mp3播放器,当将我电脑上的音乐传进去时发现我电脑上的mp3文件太杂乱无章了,便写了个工具将其自动按歌手,专辑等分类整理了一下。这里主要谈一下在写这个工具中的对用C#修改Mp3文件属性的一点心得

    MP3及wma等大多是通过ID3 Tag标记标题,歌手,出版日期等歌曲信息的,目前ID3主要用的是ID3v1及ID3v2两种,目前大部分mp3播放器也都支持这两种格式。关于ID3文件的详细格式,可以在ID3.org上查询。

    最开始我是写了一个简单的ID3 Tag的解析器,本身写个解析器并不是很难,但要命的是网上下载的很多文件并不是严格遵循ID3格式来写文件头的,不仅要处理大量的未知异常行为,一个不留神会造成对mp3文件的损害。于是我便放弃了自己写解析器的念头,想看一下网上有没有什么开源的ID3 Tag的解析器。在ID3的主页上看了一下,还真不少,各个语言的都有,光C#的就有如下几个:

    另外,codeproject上还找到了一个Professional Tag Editor for MP3 (ID3) and WMA,提供了完整的界面,试了一下,功能也比较完善。  


    有了这些开源的解析器后,还得处理以下几个问题:
    1. 并不是ID3Tag的属性的获取
      播放时间,比特率等并不是ID3Tag的信息,如何获取这些信息又是一个难题
    2. 下载的mp3文件的id3格式及播放器支持问题
      那些解析器之提供了基本的读取和修改功能,而真正要把修改正确应用到文件还需要一些额外的处理。
      如标题,歌手等在ID3v1和ID3v2中都存在,而网上下载的文件有的保护ID3v1,有的包含ID3v2,还有的啥都不包含;同时,有的播放器并不支持ID3v2。
    3. 这些开源解析器本身的bug
      开源软件的最大不足时缺乏足够的文档和测试,这些软件本身也还存在一些bug,如中文显示及一些异常的处理等,弄不好也很容易损坏mp3文件

    这几个问题处理起来还是很头疼的,这时我发现windows本身提供了mp3文件属性修改的api,通过这些api可以更安全,快捷的修改MP3属性。这里是我的一个实现(需要WindowsAPICodePack)。

    ContractedBlock.gifExpandedBlockStart.gifCode
    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 MediaCore
    ExpandedBlockStart.gifContractedBlock.gif
    {
        
    public class MediaTags
    ExpandedSubBlockStart.gifContractedSubBlock.gif    
    {
    ContractedSubBlock.gifExpandedSubBlockStart.gif        
    Mp3文件属性#region Mp3文件属性
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 标题
            
    /// </summary>

            [MediaProperty("Title")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string Title getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 子标题
            
    /// </summary>

            [MediaProperty("Media.SubTitle")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string SubTitle getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 星级
            
    /// </summary>

            [MediaProperty("Rating")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public uint? Rating getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 备注
            
    /// </summary>

            [MediaProperty("Comment")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string Comment getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 艺术家
            
    /// </summary>

            [MediaProperty("Author")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string Author getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 唱片集
            
    /// </summary>

            [MediaProperty("Music.AlbumTitle")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string AlbumTitle getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 唱片集艺术家
            
    /// </summary>

            [MediaProperty("Music.AlbumArtist")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string AlbumArtist getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 年
            
    /// </summary>

            [MediaProperty("Media.Year")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public uint? Year getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 流派
            
    /// </summary>

            [MediaProperty("Music.Genre")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string Genre getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// #
            
    /// </summary>

            [MediaProperty("Music.TrackNumber")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public uint? TrackNumber getset; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 播放时间
            
    /// </summary>

            [MediaProperty("Media.Duration")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string Duration getprivate set; }

    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    /**//// <summary>
            
    /// 比特率
            
    /// </summary>

            [MediaProperty("Audio.EncodingBitrate")]
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    public string BitRate getprivate set; }
            
    #endregion


            
    public MediaTags(string mediaPath)
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    {
                
    //var obj = ShellObject.FromParsingName(mp3Path);   //缩略图,只读
                
    //obj.Thumbnail.Bitmap.Save(@"R:\2.jpg");

                Init(mediaPath);
            }


            
    void Init(string mediaPath)
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    {
                
    using (var obj = ShellObject.FromParsingName(mediaPath))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    var mediaInfo 
    = obj.Properties;
                    
    foreach (var properItem in this.GetType().GetProperties())
    ExpandedSubBlockStart.gifContractedSubBlock.gif                
    {
                        var mp3Att 
    = properItem.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                        var shellProper 
    = mediaInfo.GetProperty("System." + mp3Att);
                        var value 
    = shellProper == null ? null : shellProper.ValueAsObject;

                        
    if (value == null)
    ExpandedSubBlockStart.gifContractedSubBlock.gif                    
    {
                            
    continue;
                        }


                        
    if (shellProper.ValueType == typeof(string[]))    //艺术家,流派等多值属性
    ExpandedSubBlockStart.gifContractedSubBlock.gif
                        {
                            properItem.SetValue(
    thisstring.Join(";", value as string[]), null);
                        }

                        
    else if (properItem.PropertyType!=shellProper.ValueType)    //一些只读属性,类型不是string,但作为string输出,避免转换 如播放时间,比特率等
    ExpandedSubBlockStart.gifContractedSubBlock.gif
                        {
                            properItem.SetValue(
    this,value == null ? "" : shellProper.FormatForDisplay(PropertyDescriptionFormat.Default),null);
                        }

                        
    else
    ExpandedSubBlockStart.gifContractedSubBlock.gif                    
    {
                            properItem.SetValue(
    this, value, null);
                        }

                    }

                }
        
            }


            
    public void Commit(string mp3Path)
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    {
                var old 
    = new MediaTags(mp3Path);

                
    using (var obj = ShellObject.FromParsingName(mp3Path))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    var mediaInfo 
    = obj.Properties;
                    
    foreach (var proper in this.GetType().GetProperties())
    ExpandedSubBlockStart.gifContractedSubBlock.gif                
    {
                        var oldValue 
    = proper.GetValue(old, null);
                        var newValue 
    = proper.GetValue(thisnull);

                        
    if (oldValue == null && newValue == null)
    ExpandedSubBlockStart.gifContractedSubBlock.gif                    
    {
                            
    continue;
                        }


                        
    if (oldValue == null || !oldValue.Equals(newValue))
    ExpandedSubBlockStart.gifContractedSubBlock.gif                    
    {
                            var mp3Att 
    = proper.GetCustomAttributes(typeof(MediaPropertyAttribute), false).FirstOrDefault();
                            var shellProper 
    = mediaInfo.GetProperty("System." + mp3Att);
                            Console.WriteLine(mp3Att);
                            SetPropertyValue(shellProper, newValue);
                        }

                    }

                }

            }


    ContractedSubBlock.gifExpandedSubBlockStart.gif        
    SetPropertyValue#region SetPropertyValue
            
    static void SetPropertyValue(IShellProperty prop, object value)
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    {
                
    if (prop.ValueType == typeof(string[]))        //只读属性不会改变,故与实际类型不符的只有string[]这一种
    ExpandedSubBlockStart.gifContractedSubBlock.gif
                {
    ExpandedSubBlockStart.gifContractedSubBlock.gif                
    string[] values = (value as string).Split(new char[] ';' }, StringSplitOptions.RemoveEmptyEntries);
                    (prop 
    as ShellProperty<string[]>).Value = values;
                }

                
    if (prop.ValueType == typeof(string))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<string>).Value = value as string;
                }

                
    else if (prop.ValueType == typeof(ushort?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<ushort?>).Value = value as ushort?;
                }

                
    else if (prop.ValueType == typeof(short?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<short?>).Value = value as short?;
                }

                
    else if (prop.ValueType == typeof(uint?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<uint?>).Value = value as uint?;
                }

                
    else if (prop.ValueType == typeof(int?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<int?>).Value = value as int?;
                }

                
    else if (prop.ValueType == typeof(ulong?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<ulong?>).Value = value as ulong?;
                }

                
    else if (prop.ValueType == typeof(long?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<long?>).Value = value as long?;
                }

                
    else if (prop.ValueType == typeof(DateTime?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<DateTime?>).Value = value as DateTime?;
                }

                
    else if (prop.ValueType == typeof(double?))
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    (prop 
    as ShellProperty<double?>).Value = value as double?;
                }

            }
     
            
    #endregion


    ContractedSubBlock.gifExpandedSubBlockStart.gif        
    MediaPropertyAttribute#region MediaPropertyAttribute
            [AttributeUsage(AttributeTargets.Property, Inherited 
    = false, AllowMultiple = true)]
            
    sealed class MediaPropertyAttribute : Attribute
    ExpandedSubBlockStart.gifContractedSubBlock.gif        
    {
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    public string PropertyKey getprivate set; }
                
    public MediaPropertyAttribute(string propertyKey)
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    
    this.PropertyKey = propertyKey;
                }


                
    public override string ToString()
    ExpandedSubBlockStart.gifContractedSubBlock.gif            
    {
                    
    return PropertyKey;
                }

            }
     
            
    #endregion

        }

    }

    整个代码非常简单,要进行增加其它属性也只需要加入两行代码而已。目前发现这种方式的一个唯一不足是不支持缩略图的写操作(可以读取),但这个可以通过结合上面的那些开源软件很容易的解决。

    转载于:https://www.cnblogs.com/TianFang/archive/2009/09/27/1574722.html

    展开全文
  • 从网上下了些脱口秀mp3,准备回家的时候在路上听听。下载之后发现文件名都是以“某某网整理”开头,导入到手机之后歌名长得连有用的信息都看不到了。...于是Google了一下怎样用代码修改这破属性,发现那

    从网上下了些脱口秀mp3,准备回家的时候在路上听听。

    下载之后发现文件名都是以“某某网整理”开头,导入到手机之后歌名长得连有用的信息都看不到了。

    不想一个个改了,于是敲了几行java,来了个批量重命名,有循环就是好啊!

    package file;
    
    import java.io.File;
    
    public class ChangeFileName {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		String parentDir="E:\\<span style="font-family:Microsoft YaHei;">脱口秀</span>\\2014\\";
    		File parent=new File(parentDir);
    		File[] files=parent.listFiles();
    		for (int i = 0; i < files.length; i++) {
    			String oldName=files[i].getName();
    			String newName=oldName.replace("【鸿新网www.hhxin.com整理】<span style="font-family:Microsoft YaHei;">脱口秀第</span>","");
    			newName=newName.replace("<span style="font-family:Microsoft YaHei;">期</span>:", "");
    			files[i].renameTo(new File(parentDir+newName));
    		}
    	}
    }
    


    可是再次导入到播放器之后,尼玛居然还是有“某某网整理”!

    用windows资源管理器看看属性,发现原来“标题”才是显示在播放器中的歌名。


    于是Google了一下怎样用代码修改这破属性,发现那些信息是写在MP3尾部(ID3v1)以及头部的(ID3v2)。

    找到一个可以修改尾部信息的代码

    import java.io.File;
    import java.io.IOException;
    import java.io.RandomAccessFile;
    import java.io.UnsupportedEncodingException;
    
    
    /**
     * 获得MP3文件的信息
     * 
     */
    public class Test {
    	
    	public static void main(String[] args) {
    		//TODO 演示
    		File MP3FILE = new File("test.mp3");
    		try {
    			Test info = new Test(MP3FILE);
    			info.setCharset("UTF-8");
    			System.out.println(info.getSongName());
    			System.out.println(info.getArtist());
    			System.out.println(info.getAlbum());
    			System.out.println(info.getYear());
    			System.out.println(info.getComment());
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    	
    	
    	private String charset = "utf-8";//解析MP3信息时用的字符编码
    	
    	private byte[] buf;//MP3的标签信息的byte数组
    	
    	/**
    	 * 实例化一个获得MP3文件的信息的类
    	 * @param mp3 MP3文件
    	 * @throws IOException 读取MP3出错或则MP3文件不存在
    	 */
    	public Test(File mp3) throws IOException{
    		
    		buf = new byte[128];//初始化标签信息的byte数组
    		
    		RandomAccessFile raf = new RandomAccessFile(mp3, "r");//随机读写方式打开MP3文件
    		raf.seek(raf.length() - 128);//移动到文件MP3末尾
    		raf.read(buf);//读取标签信息
    		
    		raf.close();//关闭文件
    		
    		if(buf.length != 128){//数据是否合法
    			throw new IOException("MP3标签信息数据长度不合法!");
    		}
    		
    		
    	}
    
    	/**
    	 * 获得目前解析时用的字符编码
    	 * @return 目前解析时用的字符编码
    	 */
    	public String getCharset() {
    		return charset;
    	}
    
    	/**
    	 * 设置解析时用的字符编码
    	 * @param charset 解析时用的字符编码
    	 */
    	public void setCharset(String charset) {
    		this.charset = charset;
    	}
    	
    	public String getSongName(){
    		try {
    			return new String(buf,3,30,charset).trim();
    		} catch (UnsupportedEncodingException e) {
    			return new String(buf,3,30).trim();
    		}
    	}
    	
    	public String getArtist(){
    		try {
    			return new String(buf,33,30,charset).trim();
    		} catch (UnsupportedEncodingException e) {
    			return new String(buf,33,30).trim();
    		}
    	}
    	
    	public String getAlbum(){
    		try {
    			return new String(buf,63,30,charset).trim();
    		} catch (UnsupportedEncodingException e) {
    			return new String(buf,63,30).trim();
    		}
    	}
    	
    	public String getYear(){
    		try {
    			return new String(buf,93,4,charset).trim();
    		} catch (UnsupportedEncodingException e) {
    			return new String(buf,93,4).trim();
    		}
    	}
    	
    	public String getComment(){
    		try {
    			return new String(buf,97,28,charset).trim();
    		} catch (UnsupportedEncodingException e) {
    			return new String(buf,97,28).trim();
    		}
    	}
    	
    	
    }
    


    尼玛居然现在的MP3都使用了存储信息量大的ID3v2,而且信息的长度都不固定,这让我怎么找到id="TIT2"的数据帧啊!

    阅读了不知多少时间的id3v2.3文档之后,我TM终于受不了了!


    于是我打开资源管理器,全选音频,进入属性页,

    然后愉快地把标题的值改为空,确定之后所有的标题就都被我改为空啦!




    没有标题的话播放器就会把文件名当成歌名的。


    就是这么简单!放着写好的接口你不去调用,真TM的无聊。。。。。。


    展开全文
  • Mp3Tag修改

    2014-04-24 11:12:59
    可批量编辑MP3属性,艺术家,唱片标题,发行年,流派等等
  • ogg音频文件有艺术家,标题,专辑等属性, 请问有c#如何进行修改, 找了好久也没找到有ogg的开发库,MP3格式的倒是很容易处理。 抱歉没C币,各位有知道的还望指点一下
  • 最近super simple song很火,本人有sss的mp4视频文件和歌词本,为了让歌词本可以点读,需要自制毛毛虫点读的音频,但是sss的歌曲有180多首,所以想通过程序批量完成。...3)MP3文件属性修改 下面的程序及是批量完

    最近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文件修改后
    在这里插入图片描述

    展开全文
  • 使用千千静听修改唱片标题

    千次阅读 2009-11-20 11:02:00
    一批MP3,文件名不同,但是在播放器里面显示的都是一样的,如何修改它们显示的标题呢? 选中这些mp3,用“千千静听”打开,然后全选,选择“批量属性”,然后在标题上面选择“根据文件名猜测”即可。。
  • 用千千静听修改,步骤如下: 1.将所有要更改标题的歌曲添加到播放列表中; 2.再通过“Ctrl+A”全选这些文件; 3.然后再右击鼠标并选择“批量文件属性”项; 4.在打开的窗口中单击“从文件名 猜测标签”按钮; 5.在打开的...
  • ID3 是一个较为标准化的 MP3 属性标签集, 它可以在 MP3 文件的内部嵌入歌曲的一些信息, 比如标题, 艺术家, 专辑, 年份等, 在二代的版本中, 甚至支持将歌曲的图片和歌词, 都嵌入到文件中. 这使得我们在使用一些较为...
  • 禁止修改显示属性.reg 禁止用户调整桌面工具栏的长度.reg 禁止用户改动桌面工具栏.reg 禁止用户使用reg文件.reg 禁止远程修改注册表.reg 禁止运行任何程序.reg 禁止在网络中显示标识属性.reg 屏蔽掉添加...
  • 10、支持批量修改文章的TAG标签、所属分类、文章置顶属性、文章前台是否显示属性、批量删除文章; 11、支持生成指定区域的文章,比如将ID从1到100的文章生成静态HTML页面; 12、一键清空网站所有的文章,此功能操作...
  •  10、支持批量修改文章的TAG标签、所属分类、文章置顶属性、文章前台是否显示属性、批量删除文章;  11、支持生成指定区域的文章,比如将ID从1到100的文章生成静态HTML页面;  12、一键清空网站所有的文章,此...
  • 修改BUG:VCL相关支持库部分组件在修改个别属性或调用个别方法后不可见,并改进了Delphi版本的支持库SDK。 15. 修改BUG:高级表格在列类型为数值型时,添加新行且省略标题的情况下,会导致程序异常。 16. 修改BUG...
  • HTML开发王

    2013-01-03 11:33:09
    12.3.6 链入mp3、wma音频 12.3.7 链入shockwave影片(dir) 12.3.8 关于嵌入的html文档 12.4 链入对象的呈现 12.4.1 对象的宽度和高度 12.4.2 对象的水平间距和垂直间距(hspace属性和vspace属性) 12.4.3 对象的边框 ...
  • [HTML开发王].张亚飞.扫描版

    热门讨论 2011-09-13 12:45:04
    12.3.6 链入mp3、wma音频 12.3.7 链入shockwave影片(dir) 12.3.8 关于嵌入的html文档 12.4 链入对象的呈现 12.4.1 对象的宽度和高度 12.4.2 对象的水平间距和垂直间距(hspace属性和vspace属性) 12.4.3 对象的边框 ...
  • 在窗口属性性可对工具属性进行修改。 FlashDemo Pro具有以下优势: 1、FlashDemo Pro提供了媒体制作功能 2、可以在作品中添加音频,设置MP3文件 3、可以添加文本内容,输入文字 4、也能调整作品中的图像文件...
  • 支持批量修改文件的时间属性和文件属性; 支持全程记录每一操作,可像PhotoShop一样编辑操作记录,可保存和载入操作记录作为更名批处理; 添加文件和文件夹对话框支持同时添加文件和文件夹; 支持全部或部分预览更名...
  • 修正在主界面修改日记不能记忆标题的bug4.修正日记新建保存后再次保存仍然增加一篇日记的错误5.修正编辑日记居中错误6.增加日收支比较7.e书签增加自定义功能8.改变注册方式6.3版 这是最全面的一次升级,增强了四项...
  • 实例249 禁止修改显示属性 321 实例250 列出注册表指定项下的全部键值 322 7.2 系统设置 323 实例251 隐藏、显示桌面图标 323 实例252 隐藏驱动器 324 实例253 禁用注册表 325 7.3 IE设置 327 实例254...
  • delphi 开发经验技巧宝典源码

    热门讨论 2010-08-12 16:47:23
    0140 使用FileGetAttr函数返回文件的属性 90 0141 使用FileGetDate函数返回文件的修改日期 90 0142 使用FileWrite函数将缓冲区中的内容写入文件 91 4.10 其他函数 91 0143 使用Random函数产生7个随机数 91...
  • C#.net_经典编程例子400个

    热门讨论 2013-05-17 09:25:30
    257 6.2 查找文件 258 实例176 搜索文件 259 实例177 检查文件是否存在 260 实例178 提取指定文件夹目录 261 6.3 修改文件 261 实例179 更改文件名称 262 实例180 修改文件属性 ...
  • 实例248 修改IE浏览器标题栏内容 348 实例249 隐藏IE浏览器的右键关联菜单 349 实例250 设置IE浏览器的默认主页 350 实例251 禁止修改IE浏览器主页 351 8.4 应用软件设置 352 实例252 设置Word 2000文档...
  • 实例195 修改IE标题栏内容 实例196 隐藏IE浏览器的右键关联菜单 实例197 设置IE的默认主页 实例198 清空上网历史记录 7.3 文件控制 实例199 如何建立文件关联 实例200 控制光驱的自动运行功能 7.4 游戏设置 ...
  • 实例195 修改IE标题栏内容 实例196 隐藏IE浏览器的右键关联菜单 实例197 设置IE的默认主页 实例198 清空上网历史记录 7.3 文件控制 实例199 如何建立文件关联 实例200 控制光驱的自动运行功能 7.4 游戏设置 ...
  • 实例195 修改IE标题栏内容 实例196 隐藏IE浏览器的右键关联菜单 实例197 设置IE的默认主页 实例198 清空上网历史记录 7.3 文件控制 实例199 如何建立文件关联 实例200 控制光驱的自动运行功能 7.4 游戏设置 ...
  •  cc实例195 修改IE标题栏内容   cc实例196 隐藏IE浏览器的右键关联菜单   cc实例197 设置IE的默认主页   cc实例198 清空上网历史记录   7.3 文件控制   cc实例199 如何建立文件关联   cc实例200...
  • 实例195 修改IE标题栏内容 实例196 隐藏IE浏览器的右键关联菜单 实例197 设置IE的默认主页 实例198 清空上网历史记录 7.3 文件控制 实例199 如何建立文件关联 实例200 控制光驱的自动运行功能 7.4 游戏设置 ...
  • 实例195 修改IE标题栏内容 实例196 隐藏IE浏览器的右键关联菜单 实例197 设置IE的默认主页 实例198 清空上网历史记录 7.3 文件控制 实例199 如何建立文件关联 实例200 控制光驱的自动运行功能 7.4 游戏设置 ...

空空如也

空空如也

1 2 3 4 5
收藏数 93
精华内容 37
关键字:

修改mp3属性标题