Advertisement
Guest User

Sound Class

a guest
May 21st, 2013
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.54 KB | None | 0 0
  1. package genericzombieshooter.misc;
  2.  
  3. import java.io.IOException;
  4. import java.net.URL;
  5. import javax.sound.sampled.AudioFormat;
  6. import javax.sound.sampled.AudioInputStream;
  7. import javax.sound.sampled.AudioSystem;
  8. import javax.sound.sampled.Clip;
  9. import javax.sound.sampled.DataLine;
  10. import javax.sound.sampled.LineUnavailableException;
  11. import javax.sound.sampled.UnsupportedAudioFileException;
  12.  
  13. /**
  14.  * Contains all pre-loaded sounds.
  15.  *
  16.  * @author packetpirate
  17.  *
  18.  */
  19. public enum Sounds {
  20.     RIFLE("rifle_fire.wav");
  21.    
  22.     private Clip clip;
  23.  
  24.     Sounds(String filename) {
  25.         openClip(filename);
  26.     }
  27.  
  28.     private synchronized void openClip(String filename) {
  29.         try {
  30.             URL audioFile = Sounds.class.getResource("/resources/sounds/" + filename);
  31.  
  32.             AudioInputStream audio = AudioSystem.getAudioInputStream(audioFile);
  33.             AudioFormat format = audio.getFormat();
  34.             DataLine.Info info = new DataLine.Info(Clip.class, format);
  35.             clip = (Clip) AudioSystem.getLine(info);
  36.  
  37.             clip.open(audio);
  38.         } catch (UnsupportedAudioFileException uae) {
  39.             System.out.println(uae);
  40.         } catch (IOException ioe) {
  41.             System.out.println(ioe);
  42.         } catch (LineUnavailableException lue) {
  43.             System.out.println(lue);
  44.         }
  45.     }
  46.  
  47.     public synchronized void play() {
  48.         if(clip.isRunning()) clip.stop();
  49.         clip.setFramePosition(0);
  50.         clip.start();
  51.     }
  52.  
  53.     public static void init() {
  54.         values();
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement