I have a very simple class that can play a sound file with the following code:
import java.io.File;
import java.io.IOException;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
public class Sound{
private Clip sound;
public Sound(String location){
try{
sound = AudioSystem.getClip();
File file = new File(location);
sound.open(AudioSystem.getAudioInputStream(file));
}
catch(IOException | LineUnavailableException | UnsupportedAudioFileException error){
System.out.println(error);
}
}
public void play(){
sound.start();
}
}
However, when I create an instance of this class and call the play function on it I don't get any sound. I hear a pop when the sound starts and when it ends but not the actual file. Also I don't get any errors of any sort.
What am I doing wrong?
It has been my experience that the audio file one is using the frequent culprit. Java, apparently, cannot play compressed sound files or something like that. It plays linear PCM files only. I could be wrong about the only. Anyone have an example that plays any type of sound file?
Use this and note this is not my code it's from here: How to play .wav files with java The only thing I did was post it here and optimize it a little.
I hope this helps.
Try something like:
You might have to use
AudioSystem.getClip()
after loading the audio stream.