【问题标题】:Java audio conversion fails, Unsupported conversion: FLAC from MPEG2L3 22050.0 HzJava 音频转换失败,不支持的转换:来自 MPEG2L3 22050.0 Hz 的 FLAC
【发布时间】: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文件试试吧。
  • 我试了几个,都报同样的错误。

标签: java javasound flac


【解决方案1】:

jflac 目前只支持从 FLAC 解码,不支持编码到 FLAC。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-16
    • 2018-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    相关资源
    最近更新 更多