我想将字节数组转换为AudioInputStream。字节数组之前是从* .wav文件填充的。我有以下代码:如何将字节数组转换为Java中的AudioInputStream
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
有没有人有一个想法?
使用[这](http://docs.oracle.com/javase/1.5.0/docs/ api/javax/sound/sampled/AudioSystem.html#isFileTypeSupported(javax.sound.sampled.AudioFileFormat.Type))来确认它支持wav文件,并且测试将wav文件传递给getAudioInputStream ...因此您可以检查如果问题出在bytearray或文件itseld – fmodos
你可以发布wav文件加载代码来检查你的字节数组是否正确? – gma
我相信Durandel的答案是正确的,但阅读这本入门书可能会有所帮助:http://blog.bjornroche.com/2013/05/the-abcs-of-pcm-uncompressed-digital.html –