如何使用JustFLAC与24-192高清FLAC

时间:2014-10-19 20:47:50

标签: java javasound flac

有没有人有一个如何用JustFLAC播放24-192高清FLAC文件的例子? JustFLAC是jFLAC的一个分支,声称它可以播放这类文件。

package org.kc7bfi.jflac.apps;

class Player {

public static void main(String[] args) {
    try {
        Player decoder = new Player();
        // FLAC HDTracks 24-192
        String f = "hdflacfile.flac";

        decoder.decode(f);

引发此异常:

Exception in thread "main" java.lang.IllegalArgumentException: No line matching interface SourceDataLine supporting format PCM_SIGNED 192000.0 Hz, 24 bit, stereo, 6 bytes/frame, little-endian is supported.

我尝试了很多文件。

我在WIN8和Java6上。

JustFLAC或类似的"小"包是我需要的信息。

1 个答案:

答案 0 :(得分:2)

正在发生的事情是,JustFLAC代码表示FLAC文件的音频格式为“PCM_SIGNED 192000.0 Hz,24位,立体声,6字节/帧,小端' (看起来不错)。

播放器代码将询问输出设备是否匹配此格式的SourceDataLine,以便它可以将解码数据写入该行。但是输出设备抛出异常,说它不支持这种格式。

这可能是因为实际设备不支持此格式,或者可能是Java Sound API不支持它。当然,在Java版本的Java 6上,Java Sound API不支持24位输出,这在Java 7(和8)中已经改变。使用Java 8在我的Mac上测试24位192Khz文件可以正常运行。