我正在尝试从特定格式的文件中获取 AudioInputStream。当我在其中打开文件时,fileStream
我得到一个正的 frameLength,这意味着可以读取文件并且 AudioInputStream 有效地包含数据。现在我想用 AudioSystem 转换它,AudioSystem.getAudioInputStream(format, fileStream);
并且获得的流audioStream
的 frameLength 为-1。我什至确保支持转换,而且确实如此。
public void openFile() throws IOException, UnsupportedAudioFileException, LineUnavailableException {
AudioInputStream fileStream = AudioSystem.getAudioInputStream(audioFile);
AudioFormat format = new AudioFormat(sampleRate, 8, 1, true, true);
boolean supported = AudioSystem.isConversionSupported(format, fileStream.getFormat());
if(supported) {
audioStream = AudioSystem.getAudioInputStream(format, fileStream);
System.out.println("Opened file: " + audioFile.getName());
}else{
System.out.println("Couldn't open file: " + audioFile.getName());
throw new IOException();
}
}
我完全被卡住了,我还没有找到任何有同样问题的人。我欢迎任何关于不同库的建议,但我更愿意继续使用这个,因为我已经习惯了。