Java не воспроизводит многоканальный волновой файл

Я не могу воспроизвести многоканальный волновой файл в java с помощью пакета javax.sound.sampled. Я использую внешнюю звуковую карту USB 7.1 от Logilink. Волновой файл создан мной. Если я создаю стерео трек, я могу воспроизвести файл. Если я использую 6-канальную дорожку, я получаю следующее сообщение об ошибке:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED     48000.0 Hz, 16 bit, 6 channels, 12 bytes/frame, little-endian not supported.

Я проверил, поддерживается ли строка, и это с помощью этого кода

AudioFormat format = new AudioFormat(48000, 16, 6, true, false);
DataLine.Info info = new DataLine.Info(TargetDataLine.class, format);
if (info.isFormatSupported(format)) {
  // is supported
}

Я играю волновой файл следующим образом:

AudioListener listener = new AudioListener();
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(clipFile);
Clip clip = null;
clip = AudioSystem.getClip();
clip.addLineListener(listener);
clip.open(audioInputStream);
clip.start();

Есть идеи, что не так?

0 ответов

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