我在变量“ myByteBuffer”中有一个heapbytebuffer,它表示要播放的音频wav。我看到AudioInputStream是一种使用AudioSystem.getAudioInputStream(soundFile)播放文件的方法。由于它接受“文件”,如何将必须拥有的堆字节缓冲区转换为“文件”?
最佳答案
除非您拥有(或想要保存)物理文件,否则不要使用File
重载。只需将数据包装在InputStream
中即可:
AudioSystem.getAudioInputStream(new ByteArrayInputStream(myByteBuffer.array()))
假设您使用的是完整缓冲区。如果没有,您可以根据需要切出要使用的零件。有关详细信息,请参见here。