私のコンパイラから実行すると、java progeamが100%実行されます。ファイルマネージャから実行すると、プロジェクト内のdistフォルダプログラムにはwavファイルを実行するボタンがあります)ボタンはキャッチioexceptionを持っています。コンパイラから実行すると、サウンドが実行されます。もしdistフォルダから実行した場合、または移動してパラメータとしてioexceptionを持つキャッチを実行した場合私はaudioSystemを使用してexcecuteし、クリップクラスを使用しているので、例外が発生した場合、最初の方法でClipクラスがサウンドファイルを実行しようとします。コード:私のプログラムはコンパイラから100%実行してください。distから100%を実行しないでください
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/sounds"フォルダがなければ、プログラムはあなたが望むファイルを見つけられません –