wav-Wiedergabe
Schaich
- java
Hey,
Das is wahrscheinlich eine dumme Frage aber ich komm einfach nich dahinter.
Ich versuche eine wav-Datei nach einem Countdown wiederzugeben.
Ich habe also einen Thread programmiert, der eine bestimmte Zeit runterzählt und nachdem dieser fertig ist soll dann die wav-Datei laufen.
Ich habe das abspielen in eine Methode "play()" geschrieben.
Als Fehlermeldung kommt immer
Stopuhr.java:99:17: unreported exception java.io.IOException; must be caught or declared to be thrown
Wenn ich in den Kopf der Methode
throws IOException, UnsupportedAudioFileException, LineUnavailableException
reinschreibe ändert sich nichts.
Hier mal die ganze Methode:
public void play(String path)
throws IOException, UnsupportedAudioFileException, LineUnavailableException{
File soundFile = new File(path);
AudioInputStream sound = AudioSystem.getAudioInputStream(soundFile);
DataLine.Info info = new DataLine.Info(Clip.class,sound.getFormat());
Clip clip = (Clip)AudioSystem.getLine(info);
clip.open(sound);
clip.addLineListener(new LineListener() {
public void update(LineEvent event) {
if (event.getType() == LineEvent.Type.STOP) {
event.getLine().close();
System.exit(0);
}
}
});
}
Danke schonmal
MfG Schaich
Hallo Schaich,
Der Fehler liegt vermutlich in der update-Methode da close vermutlich die IOException wirft:
public void update(LineEvent event) {
if (event.getType() == LineEvent.Type.STOP) {
try {
event.getLine().close();
} catch (IOException e) {
throw new RuntimeException(e);
}
System.exit(0);
}
}
Ein Programm irgendwo mitten drin mit "System.exit(0)" abzuschießen, ist übrigens meist kein besonders guter Stil. Außerhalb der Klasse mit der main-Methode sollte man die Funktion am Besten nie aufrufen, da man sonst irgendwo in einem Modul der Anwendung deren Gesammtverhalten steuert.
Abgesehen davon bist Du wohl turgar...
Grüße
Daniel