0

我无法使用 javax.sound.sampled 包在 java 中播放多声道波形文件。我正在使用来自 logilink 的外部 USB 7.1 环绕声卡。波形文件是我自己生成的。如果我生成立体声轨道,我可以播放该文件。如果我使用 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();

知道有什么问题吗?

4

0 回答 0