2008-09-17 8 views
40

Я ищу библиотеки в:Любые хорошие рекомендации для MP3/звуковых библиотек для java?

  • чтения и записи метаданных (например, ID3v2 тегов в mp3 и все)
  • новообращенный сжимают до сырьевым аудиоданных и, если возможно, необработанных аудиоданных MP3, OGG, AAC, ...
  • цифровой обработки звуковых данных (энергетика, тембр, Mel Frequency коэффициенты косинусного преобразование Фурье - MFCC, FFT, LPC, автокорреляция Wavelet, ...)

Я уже знаю, и я не соответствует:

  • JMF: оригинал от Sun, считывает mp3 и превращает его в WAV. Но не читает метаданные и не предоставляет каких-либо усовершенствованных функций цифровой обработки.
  • FMJ: Альтернативная реализация JMF с теми же ограничениями.
  • jAudio: Нестабильный и хотя потенциал, в настоящее время не ухоженный.
  • Marsyas: В цифровой обработке только то, на что я надеялся, но на C++. Может быть, какой-то порт/интеграция уже имеется?
  • JID3: API для метаданных, но, кажется, мертв (последняя версия 2005/12/10).
  • JLayer: API для чтения и воспроизведения, также мертв (последнее обновление 2004/11/28).
  • MetaMusic: API программы является опрятным, но без официального автономного проекта с открытым исходным кодом. Поэтому нет сообщества, будущей поддержки и всего ...
  • Light Dev: Некоторые интересные функции, но совсем не полные.

Это то, что произошло с моим собственным расследованием. Я был бы очень признателен за все материалы, предложения, критики, ...

ответ

7

JLayer должен делать все, что вам нужно. Это не мертво, это просто стабильно. Автор закончил его довольно давно, и формат MP3 с тех пор не изменился. Вы заметите, что его кодовая база MP3SPI немного более новая. Что делает MP3SPI, это переводит возможности JLayer в API JavaSound. Таким образом, вы можете взять любой код JavaSound, добавить MP3SPI в путь к классам и ожидать, что файлы MP3 начнут работать. Это довольно изящно. :)

+0

Спасибо за ответ, и вы правы, это отлично подходит для mp3, но ... насколько я видел (пожалуйста, поправьте меня, если я ошибаюсь), он не поддерживает любые будущие аудиоформаты, такие как ogg , aac, ... - и «законченный» означает, что он никогда не будет. Также нет цифровой обработки. – 2008-09-17 18:40:34

+2

OGG - это другая библиотека. Вы хотите использовать JOrbis и/или VorbisSPI. VorbisSPI принадлежит к тому же автору, что и JLayer. Если вы хотите выполнять цифровую обработку, используйте инфраструктуру SPI. Они позволяют вам использовать API JavaSound для цифровой обработки контента вашего сердца. Вы понимаете, как работают SPI? – 64BitBob 2008-09-18 03:20:08

1

Вы должны попытаться найти gstreamer-java, у меня был успех с воспроизведением медиа через него, и с ним можно было бы конвертировать аудиофайлы. Существует также JFFMpeg, который интегрируется в JMF, я не так много думал об этом, поэтому я не знаю общей протяженности его возможностей и состояния, но это нечто более пристальное.

3

Вы можете попробовать Xuggler. Вот как это происходит на ваших тестах:

* read and write meta data (for example ID3v2 tags in mp3 and all): 

, если базовый тип контейнера имеет поддержку мета-данных в FFmpeg, Xuggler поддерживает его.

* convert compressed to to raw audio data and if possible raw audio data to mp3, ogg, aac, ... 

Xuggler поддерживает mp3, Ogg (Vorbis или Speex), Speex, Vorbis, FLAC, AAC и т.д.

* digitally process the audio data (energy, timbre, Mel Frequency Cepstral Coefficients - MFCC, FFT, LPC, Autocorrelation, Wavelet, ...) 

Xuggler не имеет модули DSP так что вам нужно найти другую библиотеку для этого. Но Xuggler предоставит вам необработанные данные.

 Смежные вопросы

  • Нет связанных вопросов^_^