Как узнать фактическую длину кадра, частоту кадров и размер кадра аудиофайла mp3 в java
Я написал следующий код, чтобы узнать точные свойства mp3-файла, такие как длина кадра, частота кадров и размер кадра в Java.
File file = new File("/root/Desktop/files/sound.mp3");
AudioFileFormat baseFileFormat = null;
AudioFormat baseFormat = null;
baseFileFormat = AudioSystem.getAudioFileFormat(file);
Map<String, Object> properties = baseFileFormat.properties();
Long duration = (Long) properties.get("duration");
System.out.println("Seconds: "+(duration/1000000.0));
baseFormat = baseFileFormat.getFormat();
AudioFileFormat.Type type = baseFileFormat.getType();
System.out.println("TYPE: " + type);
float frequency = baseFormat.getSampleRate();
System.out.println("Sample Rate: " + baseFormat.getSampleRate());
System.out.println("Frame Size: " + baseFormat.getFrameSize());
System.out.println("Frame Rate: " + baseFormat.getFrameRate());
System.out.println("Sample Size In Bits: " + baseFormat.getSampleSizeInBits());
AudioInputStream in = AudioSystem.getAudioInputStream(file);
System.out.println("Frame Length: " + in.getFrameLength());
AudioInputStream din = null;
AudioFormat decodedFormat
= new AudioFormat(AudioFormat.Encoding.PCM_SIGNED,
baseFormat.getSampleRate(),
16,
baseFormat.getChannels(),
baseFormat.getChannels() * 2,
baseFormat.getSampleRate(),
false);
din = AudioSystem.getAudioInputStream(decodedFormat, in);
Я получаю следующий вывод при запуске программы.
Секунды: 30.096
ТИП: MP3
Частота дискретизации: 8000,0
Размер кадра: -1
Частота кадров: 27,777779
Размер выборки в битах: -1
Длина кадра: -1
Я хочу знать, почему он дает "-1" для размера кадра, частоты кадров и длины кадра, поскольку это не имеет смысла. Я воспроизводил тот же аудио-файл mp3 в mp3-плеере, он работает нормально.
Я включил следующие файлы: jl1.0.1.jar, tritonus_share.jar, mp3spi1.9.5.jar, tritonus_mp3.jar, mp3plugin.jar, jmf-2.1.1e.jar, jjmpeg-1.1.0.jar
В настоящее время я использую ОС CentOS 6.7.
Любая помощь в этом отношении будет принята с благодарностью.