问题描述:
当使用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翻译