有没有人有一个如何用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或类似的"小"包是我需要的信息。
答案 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文件可以正常运行。