Java音频转换失败,不支持的转换:来自MPEG2L3 22050.0 Hz的FLAC

时间:2013-09-04 23:39:32

标签: java javasound flac

我有一个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

1 个答案:

答案 0 :(得分:1)

jflac目前仅支持从FLAC解码而不是编码到FLAC。

我看到sourceforge上有一个javaFlacEncoder项目可能会做你想要的。