From c41a2df3ac4201d3774512c1a6168d817a9dd650 Mon Sep 17 00:00:00 2001 From: Li REN Date: Wed, 12 Jun 2013 23:34:43 -0400 Subject: [PATCH] Add a background music player to Mage Client. Music support .mp3 or .wav files. Put the audio files under plugins\sounds\music, random song will be played sequentially when GamePane is activited. the UI to adjust background music is add to preference dialog as well. --- .../java/mage/client/util/MusicPlayer.java | 24 +++++++++++-------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java b/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java index 6ee743113a6..25fb4f06035 100644 --- a/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java +++ b/Mage.Client/src/main/java/mage/client/util/MusicPlayer.java @@ -3,6 +3,8 @@ import java.io.File; import java.awt.List; import javax.sound.sampled.*; import mage.client.constants.Constants; +import mage.client.dialog.PreferencesDialog; +import org.apache.log4j.Logger; /** @@ -11,7 +13,7 @@ import mage.client.constants.Constants; */ public class MusicPlayer { - + private static final Logger log = Logger.getLogger(AudioManager.class); String filepath; String filename; List filelist = new List(); @@ -45,11 +47,14 @@ public class MusicPlayer { } public void play(){ - player.stopped = false; - player.breaked_out = false; - player.breaked = false; - Thread player = new Thread(new playerThread()); - player.start(); + String soundsOn = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_MUSICS_ON, "true"); + if(soundsOn.equals("true")){ + player.stopped = false; + player.breaked_out = false; + player.breaked = false; + Thread player = new Thread(new playerThread()); + player.start(); + } } public static void stopBGM(){ @@ -116,8 +121,7 @@ public class MusicPlayer { volume = (FloatControl)sourceDataLine.getControl(FloatControl.Type.MASTER_GAIN); sourceDataLine.start(); }catch(Exception e){ - e.printStackTrace(); - System.exit(0); + log.error("Couldn't load file: " + file + " " + e); } } @@ -139,6 +143,7 @@ public class MusicPlayer { try { Thread.sleep(10); } catch (Exception e) { + log.error("Thread error: " + e); } } breaked = false; @@ -161,8 +166,7 @@ public class MusicPlayer { sourceDataLine.close(); breaked = true; }catch(Exception e){ - e.printStackTrace(); - System.exit(0); + log.error("Thread error: " + e); } } };