Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用MP3SPI解析MP3文件中的ID3标记_Java_Audio_Mp3_Javasound - Fatal编程技术网

Java 使用MP3SPI解析MP3文件中的ID3标记

Java 使用MP3SPI解析MP3文件中的ID3标记,java,audio,mp3,javasound,Java,Audio,Mp3,Javasound,我正在使用Java应用程序播放MP3文件。开始和停止比赛效果很好。但是,我希望能够打印MP3文件中的ID3标签 我尝试了以下代码: URL fileUrl = new File("song.mp3").toURI().toURL(); AudioFileFormat audioFileFormat = new MpegAudioFileReader().getAudioFileFormat(fileUrl); Map<String, Object> properties = aud

我正在使用Java应用程序播放MP3文件。开始和停止比赛效果很好。但是,我希望能够打印MP3文件中的ID3标签

我尝试了以下代码:

URL fileUrl = new File("song.mp3").toURI().toURL();

AudioFileFormat audioFileFormat = new MpegAudioFileReader().getAudioFileFormat(fileUrl);
Map<String, Object> properties = audioFileFormat.properties();
for (Entry<String, Object> entry : properties.entrySet()) 
{
    System.out.println(entry.getKey() + " = " + entry.getValue());
}
根据MP3SPI的文档和这里关于堆栈溢出的各种回答,还应该有诸如流派和艺术家之类的属性。感觉好像有什么重大的事情我还不明白,我似乎不明白我做错了什么


使用mp3.id3tag.v2 a
ByteArrayInputReader
对我来说似乎有点奇怪,我不明白这意味着什么。另外,我想知道ID3标签似乎是用iTunes编码的(查看mp3.id3tag.encoded)这一事实是否与没有获得任何ID3标签输出有关。

要正确读取ID3标签,请使用类似的库。

要正确读取ID3标签,请使用类似的库

mp3.copyright = false
mp3.framesize.bytes = 1041
mp3.vbr = false
mp3.frequency.hz = 44100
mp3.framerate.fps = 38.28125
mp3.id3tag.v2 = java.io.ByteArrayInputStream@281e3708
mp3.channels = 2
mp3.vbr.scale = 0
mp3.version.encoding = MPEG1L3
mp3.bitrate.nominal.bps = 320000
mp3.version.layer = 3
mp3.id3tag.v2.version = 2
mp3.padding = true
mp3.id3tag.encoded = iTunes 10.6.1
mp3.header.pos = 2147
comment = TunNORM
mp3.version.mpeg = 1
mp3.mode = 0
mp3.crc = false
mp3.original = false