问题描述:
当使用Audiosystem类的write()方法向AudioInputStream写入音频数据时,可能会遇到Audiosystem过早停止写入AudioInputStream的错误。
解决方法:
AudioSystem类的getAudioInputStream()方法获取的AudioInputStream对象的格式与实际音频数据的格式一致。AudioFormat format = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sampleRate, sampleSizeInBits, channels, frameSize, frameRate, bigEndian);
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(file);
AudioInputStream写入的音频数据的长度与实际音频数据的长度一致。byte[] audioData = new byte[length];
audioInputStream.write(audioData, 0, length);
AudioInputStream对象没有关闭:
在向AudioInputStream写入音频数据之前,确保没有调用AudioInputStream对象的close()方法关闭它。audioInputStream.close();
AudioSystem类的不同的write()方法。AudioSystem.write(audioInputStream, fileType, file);
AudioSystem.write(audioData, fileType, file);
以上是一些可能导致Audiosystem过早停止写入AudioInputStream错误的常见原因和解决方法。根据具体的使用场景,可能还有其他的解决方法。
上一篇:AudioStreams没有关闭
下一篇:Audiotagplayer翻译