package com.thecherno.cherno.engine.audio; import java.io.File; import javafx.embed.swing.JFXPanel; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; import javafx.util.Duration; /** * JavaFX sucks. * * @author Yan Chernikov * */ public class Sound { static { new JFXPanel(); } private volatile MediaPlayer sound; private String soundFile = ""; public Sound(String file) { create(file); } private void create(final String file) { final File soundFile = new File(file); if (!soundFile.exists()) { System.err.println("Sound File \"" + file + "\" not found!"); return; } String[] strings = file.split("/"); this.soundFile = strings[strings.length - 1]; new Thread() { public void run() { try { sound = new MediaPlayer(new Media(soundFile.toURI().toString())); } catch (Exception e) { e.printStackTrace(); } } }.start(); } public void play() { new Thread("Sound") { public void run() { sound.stop(); sound.setCycleCount(0); sound.play(); } }.start(); } public void loop() { new Thread("Sound: " + soundFile) { public void run() { sound.stop(); sound.setCycleCount(MediaPlayer.INDEFINITE); sound.play(); } }.start(); } public void stop() { sound.stop(); } }