当前位置: 首页 > 工具软件 > JAudiotagger > 使用案例 >

java获取音乐文件的信息_JAudiotagger读取/修改音乐文件的属性信息

邰博远
2023-12-01

最近需要用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和歌唱家属性,并修改:

Java

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

privatevoidreadMP3File(Filefile){

StringfileName=file.getName();

if(!fileName.endsWith(".MP3")&&!fileName.endsWith(".mp3")){

return;

}

/**

* 自定义 标题  作者  专辑

*/

String_author="周杰伦";

String_title="青花瓷";

String_album="《范特西》";

MP3FileReaderreader=newMP3FileReader();

try{

AudioFileaudioFile=reader.read(file);

Tagtag=audioFile.getTag();

booleanupdate=false;

StringARTIST=tag.getFirst(FieldKey.ARTIST);

if(StringUtils.isEmpty(ARTIST)){

tag.setField(FieldKey.ARTIST,_author);

update=true;

}

StringTITLE=tag.getFirst(FieldKey.TITLE);

if(StringUtils.isEmpty(TITLE)){

tag.setField(FieldKey.TITLE,_title);

update=true;

}

StringALBUM=tag.getFirst(FieldKey.ALBUM);

if(StringUtils.isEmpty(ALBUM)){

tag.setField(FieldKey.ALBUM,_album);

update=true;

}

/**

* 如果有修改,写入文件

*/

if(update){

MP3FileWriterwriter=newMP3FileWriter();

writer.writeFile(audioFile);

}

}catch(Exceptione){

e.printStackTrace();

}

}

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

Java

1

2

3

FlacFileReaderreader=newFlacFileReader();

AudioFileaudioFile=reader.read(file);

Tagtag=audioFile.getTag();

Java

1

2

FlacFileWriterwriter=newFlacFileWriter();

writer.write(audioFile);

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

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

 类似资料: