Java Music Player: информация о песне и воспроизведение


В Android мы можем использовать медиаплеер для воспроизведения песен на устройстве, а курсоры-для получения информации о дорожке (которую отслеживает ОС). Мой вопрос заключается в том, каковы их эквиваленты на языке Java?

Примечание: Я видел людей, упоминающих JavaFX, однако это не похоже на установку с JVM по умолчанию, и таким образом моя программа больше не будет кроссплатформенной.

Есть предложения?

Примечание: все эти файлы будут локальными, хотя они могут иметь любое аудио тип файла.

1 2

1 ответ:

Я предоставлю информацию о решении, связанном с JavaFX для музыкального проигрывателя Java, поскольку я думаю, что это хорошая технология для использования в этой задаче.

Поддерживаемые платформы и форматы

Они могут быть любого аудиофайла.

Поддерживаемые типы аудио для JavaFX описаны в javafx.сцена.media javadoc . Поддерживаемые форматы для JavaFX 2.2-MP3, AAC и PCM в различных контейнерах, таких как mp3, mp4 и wav-файлы. Другие форматы, такие как Ogg Theora не поддерживаются - поэтому, если вам нужны такие форматы, вам понадобится другое решение, чем JavaFX 2.2.

Я видел людей, упоминающих JavaFX, однако это не кажется установленным с JVM по умолчанию, и таким образом моя программа больше не будет кроссплатформенной

JavaFX устанавливается с Oracle Java runtime по умолчанию, так как Java 7 update 6 и JavaFX 2.2 работают на OS X, Windows и Linux. В настоящее время нет широко доступных решений для запуска JavaFX на мобильных платформах (хотя это может измениться в будущем).

Дополнительная информация об использовании JavaFX с Java 7 содержится в моем ответе накомпиляцию и запуск с JavaFX 2.1 , а также вруководстве по развертыванию JavaFX .

Получить информацию о дорожке (которую отслеживает ОС)

Большая часть информации о треке на самом деле закодирована в медиафайлах, а не в базе данных ОС. Вы можете извлекать метаданные из медиафайлов, воспроизводимых Явафкс. Синтаксический анализ ограниченного объема метаданных из медиафайлов поддерживается в соответствии с определением, содержащимся в документации по медиафайлам . Обратите внимание, что не все носители содержат все метаданные. Я протестировалбесплатный mp3-файл из amazon и успешно извлек из него множество метаданных. Метаданные теста AAC, записанных на файл M4A из iTunes был почти пустой. Таким образом, результаты зависят от используемого медиафайла.

Пример Игрока

Я создал образец музыки плеер в JavaFX, который воспроизводит аудиофайлы из каталога, отображая метаданные для каждой песни.

аудиоплеер

Java2s также содержит источник для медиаплеера, созданного авторами книги Pro JavaFX 2. Это может быть лучшей ссылкой, чем мой код, так как мой был быстрым взломом, в то время как профессиональный источник взят из профессионально опубликованной книги.

Дополнительные Вопросы

Любые предложения для тех из нас, кто на linux не использует JRE оракула?

Oracle JRE доступен в Linux, но если вы не хотите использовать его, вы можете построить openjfx для openjdk и использовать его, или вы можете разработать свое приложение с помощью Oracle JRE и использовать средства упаковки JavaFX для распространения его как автономное приложение, чтобы оно не имело внешней зависимости от JRE.