Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Java AudioSystem.write保存多个一字节数组_Java_Arrays_Audio - Fatal编程技术网

如何使用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);