Java MP3 библиотека для программы микширования музыки
Я разрабатываю программу для микширования музыки. Я пытался сделать это в JMF, но это слишком медленно и медленно. Поэтому у меня есть вопрос, знает ли кто-нибудь хорошую музыкальную библиотеку, которая способна:
- Воспроизвести MP3
- Переместить во времени место в музыке
- Установить громкость, панорамирование, эквалайзер (фильтр высоких, средних и низких частот)
- Установите высоту звука / скорость музыки
- делать спектральную аналитику
- установить выход музыки (редкий выход, центральный выход <- на звуковой карте)
И это должно быть быстро. Я пробовал с JMF, Java Sound API (без поддержки MP3, не имеет всех функций - на самом деле было бы хорошо, если бы он мог поддерживать mp3 и если бы вы могли установить скорость musuc) и с JLayer.
Итак, какую библиотеку Java MP3 вы рекомендуете использовать в моем проекте???
2 ответа
Не существует библиотеки "управляй ими всеми". API, который я бы использовал для вывода звука, - это javax.sound.sampled (самый низкий уровень, к которому вы можете получить доступ, не испачкав руки). То, что вы используете для обработки ввода и обработки, зависит от того, насколько гибко вы хотите / нуждаетесь.
Что касается звуковых форматов, то почти все можно подключить, чтобы извергнуть необработанный PCM, и вам придется делать это самостоятельно (в большинстве случаев). По крайней мере, если вы хотите иметь возможность добавить поддержку для менее распространенных форматов, таких как flac, ogg, mod, sid... Для каждого из них есть реализация с открытым исходным кодом, но вы должны сделать подключение самостоятельно). И имейте в виду, что у них очень разные API, поэтому для инкапсуляции их реализации потребуется какой-то уровень абстракции.
Управление высотой звука возможно в основном двумя совершенно разными способами: воспроизвести звук с другой частотой дискретизации (опять же, вам придется подключить его самостоятельно), или, если желаемая частота дискретизации не поддерживается, повторно сэмплировать необработанный PCM.
Я предлагаю вам сначала отделить ваши основные строительные блоки. Подумайте об источниках звука (файлы), обработке аудио (анализ спектра и манипулирование звуком) и воспроизведении аудио (вывод звука на динамики). Хотя JMF и javax.sound предлагают ограниченные возможности во всех трех, это совершенно разные задачи. Таким образом, вы не должны смешивать их и считать, что вам, вероятно, придется использовать разные библиотеки, чтобы делать все, что вы хотите достичь в каждой области.
Я бы порекомендовал использовать javazoom. Вы можете скачать это здесь.