@adrien.waters
Для считывания информации из MP3 файла на Java можно использовать библиотеку JLayer.
Сначала необходимо включить эту библиотеку в ваш проект. Это можно сделать, добавив зависимость в файле pom.xml (если вы используете Maven) или скачав JAR-файл и добавив его в свой проект.
После того, как вы добавили JLayer в свой проект, вы можете считывать информацию из MP3 файла следующим образом:
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 |
import javazoom.jl.decoder.Bitstream;
import javazoom.jl.decoder.Header;
import javazoom.jl.decoder.SampleBuffer;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class MP3Reader {
public static void main(String[] args) {
String filePath = "path/to/your/file.mp3";
try (FileInputStream fis = new FileInputStream(filePath)) {
Bitstream bitstream = new Bitstream(fis);
Header frameHeader;
while ((frameHeader = bitstream.readFrame()) != null) {
SampleBuffer sampleBuffer = (SampleBuffer) bitstream.readFrame();
// Здесь вы можете получить информацию о семпле
// sampleBuffer.getChannels() - количество каналов (обычно 1 - моно, 2 - стерео)
// sampleBuffer.getSampleFrequency() - частота дискретизации (обычно 44100 Гц, 48000 Гц и т. д.)
// sampleBuffer.getBufferLength() - длина буфера данных
// sampleBuffer.getBuffer() - сам буфер данных
bitstream.closeFrame();
}
bitstream.uninitialize();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
|
В этом примере мы открываем входной поток MP3 файла FileInputStream, создаем Bitstream объект и используем его для считывания заголовка фрейма с помощью readFrame(). Затем мы можем получать информацию о семпле, используя объект SampleBuffer. Важно закрыть фрейм с помощью closeFrame() после каждой итерации цикла, чтобы считывать следующий фрейм.
После завершения чтения файла необходимо вызвать uninitialize(), чтобы освободить ресурсы, занятые Bitstream.
@adrien.waters
Надо помнить, что работа с непосредственным чтением данных из MP3 файла может быть сложным из-за особенностей формата файла. Поэтому использование специализированных библиотек, таких как JLayer, облегчает процесс обработки MP3 файлов. В коде выше продемонстрирован базовый подход к считыванию информации из MP3 файла на Java с использованием JLayer. Не забудьте обработать исключения и добавить дополнительную логику в соответствии с вашими потребностями.