.wav ファイルをメモリにロードしようとしていますが、ファイルが存在しないというメッセージが表示され続けます。
String filename;
public MyClass(String _filename){
filename = _filename;
}
public void run(){
InputStream in = View.class.getClassLoader().getResourceAsStream("/sounds/"+filename);
File inputFile = new File(in.toString());
if(!inputFile.exists()){
System.err.println("Wave file not found: " + in.toString());
return;
}
}
コンソール:
Wave ファイルが見つかりません: java.io.FileInputStream@dd5b524
Wave ファイルが見つかりません: java.io.FileInputStream@570add96
ファイルはパッケージ フォルダーにあります。入った
myPackage/sounds/write.wav
編集:
実際にサウンドをロードしたい:
InputStream in = this.getClass().getResourceAsStream("sounds/"+filename);
AudioInputStream audioInputStream = null;
try {
audioInputStream = AudioSystem.getAudioInputStream(in);
} catch (UnsupportedAudioFileException e1) {
e1.printStackTrace();
return;
} catch (IOException e1) {
e1.printStackTrace();
return;
}
しかし、コンソールにはまだエラーがあります:
スレッド「Thread-6」での例外 スレッド「Thread-7」での例外 com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(Unknown Source) での java.lang.NullPointerException ) com.chrissman.threads.AePlayWave.run(AePlayWave.java:47) で java.lang.NullPointerException com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(不明なソース) で javax.sound.sampled.AudioSystem.getAudioInputStream(ソース不明) com.chrissman.threads.AePlayWave.run(AePlayWave.java:47)