【发布时间】:2013-09-04 23:39:32
【问题描述】:
我有一个 AudioInputStream,我想要一个 FLAC AudioInputStream。
我正在使用 jflac 库中的 FlacEncoding.FLAC。
我将 mp3plugin.jar 添加到类路径以处理 mp3。
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
import org.kc7bfi.jflac.sound.spi.FlacEncoding;
public AudioInputStream getFlacStream(AudioInputStream ais) {
FlacEncoding encoding = FlacEncoding.FLAC;
AudioInputStream flacStream = AudioSystem.getAudioInputStream(encoding,
ais);
return flacStream;
}
但它给出了错误:
Exception in thread "main" java.lang.IllegalArgumentException: Unsupported conversion: FLAC from MPEG2L3 22050.0 Hz, unknown bits per sample, mono, unknown frame size, unknown frame rate,
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:876)
at FlacConverter.getFlacStream(FlacConverter.java:43)
at FlacConverter.getFlacBytes(FlacConverter.java:36)
at FlacConverter.main(FlacConverter.java:25)
更新:
当我打电话时
AudioSystem.getTargetEncodings(ais.getFormat());
我得到一个只有一种编码的数组:
PCM_SIGNED
【问题讨论】:
-
还有..你有问题吗?
-
是的。如何进行转换?
-
我怀疑转换失败是因为所有这些
unknown值都是 MP3 格式的。用here链接的MP3文件试试吧。 -
我试了几个,都报同样的错误。