Java不播放多通道波形文件

时间:2018-01-04 09:44:47

标签: java audio surround

我无法使用javax.sound.sampled包在java中播放多声道wave文件。 我正在使用logilink的外置USB 7.1环绕声卡。 wave文件由我自己生成。如果我生成立体声音轨,我可以播放该文件。如果我使用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 个答案:

没有答案