SoundUtils.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. package me.hammerle.supersnuvi.util;
  2. import java.io.File;
  3. import javafx.scene.media.Media;
  4. import javafx.scene.media.MediaPlayer;
  5. import me.hammerle.supersnuvi.gamelogic.StateRenderer;
  6. import me.hammerle.supersnuvi.rendering.GameWindow;
  7. public class SoundUtils
  8. {
  9. public static void loadSounds()
  10. {
  11. }
  12. public final static MediaPlayer COLLECT = getMedia("collect");
  13. public final static MediaPlayer JUMP = getMedia("jump");
  14. public final static MediaPlayer JUMP_ON_BOUNCE_SHROOM = getMedia("jump_on_bounce_shroom");
  15. public final static MediaPlayer STONE_CRUMBLING = getMedia("stone_crumbling");
  16. public final static MediaPlayer WALK = getMedia("walk");
  17. public final static MediaPlayer WALK_WATER = getMedia("walk_water");
  18. public final static MediaPlayer MENU_MUSIC = getMedia("menu_music", true);
  19. public final static MediaPlayer SONG_1 = getMedia("song1", true);
  20. public static MediaPlayer getMedia(String path, boolean loop)
  21. {
  22. if(StateRenderer.noSound)
  23. {
  24. return null;
  25. }
  26. Media sound = new Media(new File("sounds/" + path + ".wav").toURI().toString());
  27. MediaPlayer mp = new MediaPlayer(sound);
  28. if(loop)
  29. {
  30. mp.setOnEndOfMedia(() ->
  31. {
  32. mp.seek(mp.getStartTime());
  33. });
  34. }
  35. else
  36. {
  37. mp.setOnEndOfMedia(() ->
  38. {
  39. mp.seek(mp.getStartTime());
  40. mp.stop();
  41. });
  42. }
  43. return mp;
  44. }
  45. public static MediaPlayer getMedia(String path)
  46. {
  47. return getMedia(path, false);
  48. }
  49. public static void playSound(MediaPlayer mp, boolean reset)
  50. {
  51. if(StateRenderer.noSound)
  52. {
  53. return;
  54. }
  55. if(reset)
  56. {
  57. mp.seek(mp.getStartTime());
  58. }
  59. mp.play();
  60. }
  61. public static void playSound(MediaPlayer mp)
  62. {
  63. playSound(mp, true);
  64. }
  65. public static void stopSound(MediaPlayer mp)
  66. {
  67. if(StateRenderer.noSound)
  68. {
  69. return;
  70. }
  71. mp.stop();
  72. }
  73. }