1

有没有人举例说明如何使用 JustFLAC 播放 24-192 HD 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 或类似的“小”包是我需要的信息。

4

1 回答 1

2

发生的事情是 JustFLAC 代码说 FLAC 文件的音频格式是“PCM_SIGNED 192000.0 Hz,24 位,立体声,6 字节/帧,little-endian”(看起来正确)。

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

这可能是因为实际设备不支持这种格式,也可能是 Java Sound API 不支持。当然,在 Java 6 的 Mac 版本上,Java Sound API 不支持 24 位输出,这在 Java 7(和 8)中有所改变。在我的 Mac 上使用 Java 8 测试 24 位 192Khz 文件可以正常播放。

于 2014-10-30T15:33:54.737 回答