我写了一段播放.wav文件的代码。它工作得很好。现在,另一段代码从音频接收器获取音乐数据,并一直附加到该.wav文件。
假设当我运行播放器时,音频的长度是5秒,现在尽管使用更新程序代码更新了wav文件,播放器只播放了最初的5秒。
播放代码很简单:
try{
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("junk.wav"));
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
}catch(Exception ex){
System.out.println("Error with playing sound.");
ex.printStackTrace();
}如何在输入进入麦克风插孔后播放音频流(允许一定的延迟)?
发布于 2013-06-29 03:59:59
请参阅Java教程的Sound Trail中的“捕获音频”
要理解本节,您还必须阅读前面的部分。这并不是一个容易阅读的东西。但从根本上说,flyer (+1)提到的TargetDataLine是关键。
我怀疑如果你在读.wav的时候附加到它后面,你会得到一个并发错误。
如果你只是想从麦克风输入声音,并且你正确地设置了TargetDataLine,你应该能够得到相当低的延迟。
https://stackoverflow.com/questions/17367944
复制相似问题