Я работаю над базовой обработкой звука в Java, используя AudioInputStream
.Моя программа может корректно загружать 16-битное целочисленное аудио PCM, которое кодируется двумя дорожками, но не стерео.Когда представлен файл, который (согласно ffprobe) имеет значение
Input #0, wav, from XXX:
Duration: 00:00:02.80, bitrate: 1411 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s
Все хорошо.Однако при представлении с
Duration: 01:19:15.58, bitrate: 1536 kb/s
Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
(это файл, который я на самом деле хочу редактировать), происходит сбой с
Exception in thread "main" javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input file
at javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
Кодировка такая же, и пример маловероятенразница в скорости может привести к проблеме.Похоже, что это стерео против двух каналов вызывает это исключение, но стерео должно быть двухканальным, не так ли?
Я могу повторить эту проблему с
AudioSystem.getAudioInputStream(new File("file under test"));