我想将字节数组转换为AudioInputStream。字节数组是从* .wav文件填充的。我有以下代码:
public static AudioInputStream writeBytesBackToStream(byte[] bytes) {
ByteArrayInputStream baiut = new ByteArrayInputStream(bytes);
AudioInputStream stream = null;
try {
stream = AudioSystem.getAudioInputStream(baiut);
} catch (UnsupportedAudioFileException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
if(stream.equals(null) || stream == null) {
System.out.println("WARNING: Stream read by byte array is null!");
}
return stream;
}
现在,我只想将此字节数组转换为AudioInputStream,但会引发UnsupportedAudioFileException:
javax.sound.sampled.UnsupportedAudioFileException: could not get audio input stream from input stream
有人知道吗?
最佳答案
如果您正确读取WAV文件,则字节数组将仅包含原始PCM数据。因此,AudioSystem无法识别流的格式并引发异常。
这不能设计使然。您需要在流中提供完整的音频格式图像,以使AudioSystem识别流是什么格式,而不仅仅是原始数据。
关于java - 如何在Java中将字节数组转换为AudioInputStream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17060346/