Basically I'm tryin' to update some old code with deprecated java applet stuff to javafx, I think the main problem for some reason that javafx's audioclip doesn't support ".au" files and I'm getting this error, I'd like to know if there is anyway to fix it/ use other ways to play the audio in javafx without actually convert the file types.
the original code:
import java.applet.*;
public class AnnounceTimeOnSeparateThread implements Runnable{
private AudioClip[] hourAudio = new AudioClip[12];
private AudioClip[] minuteAudio = new AudioClip[60];
private AudioClip amAudio = Applet.newAudioClip(this.getClass().getResource("/audio/am.au"));
private AudioClip pmAudio = Applet.newAudioClip(this.getClass().getResource("/audio/pm.au"));
private int hour;
private int minute;
public AnnounceTimeOnSeparateThread() {
for (int i = 0; i < 12; i++)
hourAudio[i] = Applet.newAudioClip(this.getClass().getResource("/audio/hour" + i + ".au"));
for (int i = 0; i < 60; i++)
minuteAudio[i] = Applet.newAudioClip(this.getClass().getResource("/audio/minute" + i + ".au"));
}
public void setHour(int hour) {
this.hour=hour;
}
public void setMinute(int minute) {
this.minute=minute;
}
public void run() {
try{
hourAudio[hour % 12].play();
Thread.sleep(1500);
minuteAudio[minute].play();
Thread.sleep(1500);
}catch (InterruptedException ex) {
}
if (hour < 12)
amAudio.play();
else
pmAudio.play();
}
}
my updated attempt with the error: (basically minor changes just changing it to fx syntax and importing))
import javafx.scene.media.AudioClip;
public class AnnounceTimeOnSeparateThread implements Runnable {
private AudioClip[] hourAudio = new AudioClip[12];
private AudioClip[] minuteAudio = new AudioClip[60];
private AudioClip amAudio = new AudioClip(this.getClass().getResource("/audio/am.au").toExternalForm());
private AudioClip pmAudio =new AudioClip(this.getClass().getResource("/audio/pm.au").toExternalForm());
private int hour;
private int minute;
public AnnounceTimeOnSeparateThread() {
for (int i = 0; i < 12; i++)
hourAudio[i] = new AudioClip(this.getClass().getResource("/audio/hour" + i + ".au").toExternalForm());
for (int i = 0; i < 60; i++)
minuteAudio[i] = new AudioClip(this.getClass().getResource("/audio/minute" + i + ".au").toExternalForm());
}