Как воспроизвести любой звуковой файл на 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.