以下代码在eclipse中运行时效果很好。但是当我将它导出到.jar文件并尝试从jar运行时,音频播放半秒钟,大约3秒钟。声音文件不在jar中。我使用System.getProperties(“user.home”)+ PathToAudioFile获取路径;这是我目前的代码段:
public void postFloorLoc(String FloorLoc)
{ String audiopath = System.getProperty("user.home") + "/BortechData/audio/";
txtFloorLocation.setText(FloorLoc);
//choosing which file to play
if(FloorLoc.contentEquals("1-FIFO"))
audiopath = audiopath + "1-fifo.wav";
if(FloorLoc.contentEquals("10-FIFO"))
audiopath = audiopath + "10-fifo.wav";
aufile = new File(audiopath);
if(FloorLoc.contentEquals("1-FIFO") || FloorLoc.contentEquals("10-FIFO"))
{ Thread t = new Thread(new Runnable(){
@Override
public void run() {
try {
Line.Info linfo = new Line.Info(Clip.class);
Line line = AudioSystem.getLine(linfo);
Clip auClip = (Clip)line;
AudioInputStream ais = AudioSystem.getAudioInputStream(aufile);
auClip.open(ais);
auClip.setFramePosition(0);
auClip.start();
}
catch(UnsupportedAudioFileException uae)
{ JOptionPane.showMessageDialog(null, uae); }
catch(IOException ioe)
{ System.out.println(ioe); }
catch(LineUnavailableException lua)
{ System.out.println(lua); }
}
});
t.start();
}
}
所有其他帮助请求都有同样的事情。再次,这在日食中很有效,但作为一个罐子,我只能在大约3秒钟内获得半秒音频。所以,它找到文件并开始播放但不播放所有文件。我错过了什么?
答案 0 :(得分:0)
我的猜测是它在Eclipse中缓冲整个剪辑,但不是从命令行缓冲。尝试增加内存分配池的大小(GB的-Xmx1024m)并查看它是否会播放更多内容?