@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. Не забудьте обработать исключения и добавить дополнительную логику в соответствии с вашими потребностями.