-6
運行100%
我的Java progeam跑,如果我從編譯器的NetBeans把運行它,如果我從文件管理器運行它,它會在DIST文件夾內的項目(100%程序有一個運行wav文件的按鈕)按鈕有一個catch ioexception如果我從編譯器運行它的聲音將運行放,如果我從dist文件夾運行它或移動然後運行它的任何路徑的捕獲,具有ioexception作爲參數會優先使用audioSystem,並將其與Clip類連接起來,所以如果在Clip類嘗試運行聲音文件的第一種方式中出現任何異常。代碼:我的程序運行100%,從編譯器把沒有從DIST
public void getSoundData(int delay){
ActionListener taskPerformer = new ActionListener(){
@Override
public void actionPerformed(ActionEvent evt){
try{
int random=(int)(Math.random()*12+1);
InputStream input = new FileInputStream("src/azcar/sounds/"+String.valueOf(random)+".wav");
AudioStream audio = new AudioStream(input);
AudioPlayer.player.start(audio);
} catch (Exception exc) {
try {
Clip clip = AudioSystem.getClip();
int random=(int)(Math.random()*12+1);
AudioInputStream input = AudioSystem.getAudioInputStream(new File("src/azcar/sounds/"+String.valueOf(random)+".wav"));
clip.open(input);
clip.start();
} catch (LineUnavailableException ex) {
JOptionPane.showMessageDialog(null, ex);
} catch (UnsupportedAudioFileException ex) {
JOptionPane.showMessageDialog(null, "نوع ملفات الصوت غير مدعوم");
} catch (IOException ex) {
JOptionPane.showMessageDialog(null, "لم أتمكن من االوصول لملفات الصوت");
}
}
}
};
Timer timer = new Timer(delay*1000*60,taskPerformer);
timer.setRepeats(true);
timer.start();
}
不知道問題是什麼在這裏,也許您的解決方案和共享代碼的人更好地瞭解複雜的問題? –
謝謝我寫的代碼 –
您使用的路徑是相對的,如果沒有「SRC/AZCAR /聲音」,你移動你的可執行文件夾,該程序將無法找到你想要的文件 –