JAudiotagger读取/修改音乐文件的属性信息

最近需要用java读取音频文件(mp3,flac格式的文件)的详细属性信息,比如:包括采样率(SampleRate)、制作格式或制作技术(Format)、单曲名(TITLE)、单曲艺术家(ARTIST)、专辑名(ALBUM)、专辑艺术家(ALBUM_ARTIST)、音轨号(TRACK)、语言(LANGUAGE)、版权方(COPYRIGHT)等等,并统一修改。研究了好久,发现有个第三方的开源jar,很好用。

JAudiotagger

官网地址:http://www.jthink.net/jaudiotagger

API DOC:http://www.jthink.net/jaudiotagger/javadoc/index.html

下载地址:https://repo1.maven.org/maven2/org/jaudiotagger/2.0.3/

使用示例:

使用起来,很简单,读取MP3文件的Title和歌唱家属性,并修改:

private void readMP3File(File file){
        String fileName = file.getName();
        if(!fileName.endsWith(".MP3") && !fileName.endsWith(".mp3")){
            return;
        }
 
        /**
         * 自定义 标题  作者  专辑
         */
        String _author = "周杰伦";
        String _title = "青花瓷";
        String _album = "《范特西》";
 
        MP3FileReader reader = new MP3FileReader();
        try {
            AudioFile audioFile = reader.read(file);
            Tag tag = audioFile.getTag();
 
            boolean update = false;
            String ARTIST = tag.getFirst(FieldKey.ARTIST);
            if(StringUtils.isEmpty(ARTIST) ){
                tag.setField(FieldKey.ARTIST,_author);
                update = true;
            }
            String TITLE = tag.getFirst(FieldKey.TITLE);
            if(StringUtils.isEmpty(TITLE) ){
                tag.setField(FieldKey.TITLE,_title);
                update = true;
            }
            String ALBUM = tag.getFirst(FieldKey.ALBUM);
            if(StringUtils.isEmpty(ALBUM) ){
                tag.setField(FieldKey.ALBUM,_album);
                update = true;
            }
            /**
             * 如果有修改,写入文件
             */
            if(update){
                MP3FileWriter writer = new MP3FileWriter();
                writer.writeFile(audioFile);
            }
 
 
        } catch (Exception e) {
            e.printStackTrace();
        }
 
 
    }

同样,对于无损音乐文件也是一样的使用方式,只是,把Reader类 和 Writer类换成Flac的封装:

FlacFileReader reader = new FlacFileReader();
AudioFile audioFile = reader.read(file);
Tag tag = audioFile.getTag();
FlacFileWriter writer = new FlacFileWriter();
writer.write(audioFile);

对于其他的属性和信息,大家可以参考官方文档。

参考文章:https://www.cnblogs.com/once/p/3734755.html

原文 

http://www.liuzk.com/374.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » JAudiotagger读取/修改音乐文件的属性信息

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址