我在变量“ myByteBuffer”中有一个heapbytebuffer,它表示要播放的音频wav。我看到AudioInputStream是一种使用AudioSystem.getAudioInputStream(soundFile)播放文件的方法。由于它接受“文件”,如何将必须拥有的堆字节缓冲区转换为“文件”?

最佳答案

除非您拥有(或想要保存)物理文件,否则不要使用File重载。只需将数据包装在InputStream中即可:

AudioSystem.getAudioInputStream(new ByteArrayInputStream(myByteBuffer.array()))


假设您使用的是完整缓冲区。如果没有,您可以根据需要切出要使用的零件。有关详细信息,请参见here

09-27 09:52