如何使用Java AudioSystem.write保存多个一字节数组
如何使用Java AudioSystem.write保存多个一字节数组,java,arrays,audio,Java,Arrays,Audio,pis是一个PipedInputStream,通过我发送带有数据的字节数组。 这样我只能保存1字节的数据数组。它不会等待下一条数据。 你能给我一些建议吗?你可以使用这样的波形发生器: public void run(){ AudioInputStream audioInputStream= new AudioInputStream(pis,audioFormat,samlpesCount); try {
pis
是一个PipedInputStream
,通过我发送带有数据的字节数组。
这样我只能保存1字节的数据数组。它不会等待下一条数据。
你能给我一些建议吗?你可以使用这样的波形发生器:
public void run(){
AudioInputStream audioInputStream= new AudioInputStream(pis,audioFormat,samlpesCount);
try {
AudioSystem.write(audioInputStream, AudioFileFormat.Type.WAVE, file);
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
pis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
我有一个解决方案:
samlpesCount
必须是总样本数,而不仅仅是一个数组的大小
InputStream in = ...;
OutputStream out = ...;
AudioInputStream in = AudioSystem.getAudioInputStream(in);
WaveFileWriter writer = new WaveFileWriter();
writer.write(in, AudioFileFormat.Type.WAVE, outStream);