Как воспроизвести любой звуковой файл на Java (.wav, .mp3, .ogg и т. Д.) [Закрыто]

Есть ли для этого самое современное решение? Мои приоритеты, .oggи файлы, но в конечном итоге цель состоит в том, чтобы иметь возможность воспроизводить любой звуковой файл. Хотя .wavфайлы можно воспроизводить с помощью javax.sound.sampled.Clip и .mp3файлы можно воспроизводить с помощью JavaFX и многих других библиотек, таких как JLayer (и этот список продолжается, скажем, для midi ...), я не смог найти ни одного решения, чтобы исправить эту проблему.

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

PS Это «решение» не обещает таких форматов воспроизведения, как .aac

2 ответа

Решение

На Mac и Windows вы можете использовать FFSampledSP , но в настоящее время это не работает для Linux. Это может измениться в будущем (я сопровождаю, поэтому я предвзято).

Пример загрузки клипа:

      // First open the original stream (e.g. mp3)
// Note that opening a file or a URL usually works better than just
// opening an InputStream, as the library can use the filename/URL
// as hint to figure out which audio file format/encoding is used
// (using the file extension).
try (AudioInputStream stream = AudioSystem.getAudioInputStream(new File("/a.mp3"))) {
    // Obtain source AudioFormat.
    AudioFormat sourceFormat = stream.getFormat();
    // Create target AudioFormat.
    AudioFormat pcm = new AudioFormat(
        AudioFormat.Encoding.PCM_SIGNED,
        sourceFormat.getSampleRate(),
        16,
        sourceFormat.getChannels(),
        sourceFormat.getChannels() * 2,
        sourceFormat.getSampleRate(),
        false);
    // Convert to something that the system can actually play, like PCM.
    AudioInputStream converted = AudioSystem.getAudioInputStream(pcm, stream);
    // Create the clip.
    Clip clip = AudioSystem.getClip();
    clip.open(converted);
    // Do something with the clip.
}

Смотрите также здесь .

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

Если вы просто хотите воспроизводить звук, вы можете скачать портативную версию проигрывателя vlc. https://www.videolan.org/vlc/#download
Если позволяет лицензия, поставьте ее вместе с распространяемым файлом.

И воспроизводить файлы в режиме без графического интерфейса:

      ProcessBuilder pb = new ProcessBuilder("D:\\vlc-3.0.12\\vlc.exe", "--intf","dummy","d:\\d.mp3");
Process p = pb.start();
int status = p.waitFor();

Это даже не открывает командное окно на платформе Windows.

Таким образом, вы также можете попробовать библиотеки с открытым исходным кодом «поддерживать все форматы», отличные от java.

Другие вопросы по тегам