package newtool;
import java.util.HashMap;
import com.stickycoding.rokon.audio.RokonAudio;
import com.stickycoding.rokon.audio.RokonMusic;
import com.stickycoding.rokon.audio.SoundFile;
import rokon.Rokon;
import android.content.SharedPreferences;
public class AudioController
{
private static RokonAudio audio;
//store sound file and its id
private static HashMap<Integer, SoundFile> soundMap;
//bg music file name
private static String musicFile;
//bg music is mute or not
private static boolean isMusicMute;
//bg music volume
private static float musicVolume;
private static final String settingFile = "soundSettings";
public AudioController()
{
audio = new RokonAudio();
//get store settings
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
RokonAudio.mute = preferences.getBoolean("soundMute", false);
isMusicMute = preferences.getBoolean("musicMute", false);
audio.setMasterVolume(preferences.getFloat("soundVolume", 1));
musicVolume = preferences.getFloat("musicVolume", 1);
}
/**
* load all sound effect files
*
* @param soundID an array of sound integer ID
* @param soundName an array of sound name
*/
public void loadSounds(int[] soundID, String[] soundName)
{
int length = soundID.length;
soundMap = new HashMap<Integer, SoundFile>(length);
for(int i = 0; i < length; i++)
{
soundMap.put(soundID[i], audio.createSoundFile("audio/"+soundName[i]));
}
}
/**
* play single sound
*
* @param id sound ID
* @param isLoop loop or not
*/
public static void playSound(int id, boolean isLoop)
{
SoundFile sound = soundMap.get(id);
if(isLoop)
{
sound.playContinuous();
}
else
{
sound.play();
}
}
/**
* play background music
*
* @param file music name
* @param isLoop loop or not
*/
public static void playMusic(String file, boolean isLoop)
{
musicFile = file;
if(!isMusicMute)
{
RokonMusic.stop();
RokonMusic.play(file, isLoop);
RokonMusic.getMediaPlayer().setVolume(musicVolume, musicVolume);
}
}
/** pause background music */
public static void pauseMusic()
{
RokonMusic.pause();
}
/** resume background music */
public static void resumeMusic()
{
RokonMusic.play();
}
/**
* set sound effect mute or not
*
* @param mute true is mute
*/
public static void muteSound(boolean mute)
{
RokonAudio.mute = mute;
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putBoolean("soundMute", mute).commit();
}
/**
* set music mute or not
*
* @param mute true is mute
*/
public static void muteMusic(boolean mute)
{
if(mute)
{
RokonMusic.stop();
RokonMusic.getMediaPlayer().release();
}
else
{
RokonMusic.play(musicFile, true);
RokonMusic.getMediaPlayer().setVolume(musicVolume, musicVolume);
}
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putBoolean("musicMute", mute).commit();
}
/**
* set sound volume
*
* @param volume range[0,1]
*/
public static void setSoundVolume(float volume)
{
audio.setMasterVolume(volume);
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putFloat("soundVolume", volume).commit();
}
/**
* set music volume
*
* @param volume range[0,1]
*/
public static void setMusicVolume(float volume)
{
RokonMusic.getMediaPlayer().setVolume(volume, volume);
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putFloat("musicVolume", volume).commit();
}
/** release instances, garbage collection */
public static void dealloc()
{
try
{
audio.destroy();
RokonMusic.stop();
RokonMusic.getMediaPlayer().release();
soundMap.clear();
audio = null;
soundMap = null;
musicFile = null;
}
catch (NullPointerException e)
{
}
}
}
import java.util.HashMap;
import com.stickycoding.rokon.audio.RokonAudio;
import com.stickycoding.rokon.audio.RokonMusic;
import com.stickycoding.rokon.audio.SoundFile;
import rokon.Rokon;
import android.content.SharedPreferences;
public class AudioController
{
private static RokonAudio audio;
//store sound file and its id
private static HashMap<Integer, SoundFile> soundMap;
//bg music file name
private static String musicFile;
//bg music is mute or not
private static boolean isMusicMute;
//bg music volume
private static float musicVolume;
private static final String settingFile = "soundSettings";
public AudioController()
{
audio = new RokonAudio();
//get store settings
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
RokonAudio.mute = preferences.getBoolean("soundMute", false);
isMusicMute = preferences.getBoolean("musicMute", false);
audio.setMasterVolume(preferences.getFloat("soundVolume", 1));
musicVolume = preferences.getFloat("musicVolume", 1);
}
/**
* load all sound effect files
*
* @param soundID an array of sound integer ID
* @param soundName an array of sound name
*/
public void loadSounds(int[] soundID, String[] soundName)
{
int length = soundID.length;
soundMap = new HashMap<Integer, SoundFile>(length);
for(int i = 0; i < length; i++)
{
soundMap.put(soundID[i], audio.createSoundFile("audio/"+soundName[i]));
}
}
/**
* play single sound
*
* @param id sound ID
* @param isLoop loop or not
*/
public static void playSound(int id, boolean isLoop)
{
SoundFile sound = soundMap.get(id);
if(isLoop)
{
sound.playContinuous();
}
else
{
sound.play();
}
}
/**
* play background music
*
* @param file music name
* @param isLoop loop or not
*/
public static void playMusic(String file, boolean isLoop)
{
musicFile = file;
if(!isMusicMute)
{
RokonMusic.stop();
RokonMusic.play(file, isLoop);
RokonMusic.getMediaPlayer().setVolume(musicVolume, musicVolume);
}
}
/** pause background music */
public static void pauseMusic()
{
RokonMusic.pause();
}
/** resume background music */
public static void resumeMusic()
{
RokonMusic.play();
}
/**
* set sound effect mute or not
*
* @param mute true is mute
*/
public static void muteSound(boolean mute)
{
RokonAudio.mute = mute;
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putBoolean("soundMute", mute).commit();
}
/**
* set music mute or not
*
* @param mute true is mute
*/
public static void muteMusic(boolean mute)
{
if(mute)
{
RokonMusic.stop();
RokonMusic.getMediaPlayer().release();
}
else
{
RokonMusic.play(musicFile, true);
RokonMusic.getMediaPlayer().setVolume(musicVolume, musicVolume);
}
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putBoolean("musicMute", mute).commit();
}
/**
* set sound volume
*
* @param volume range[0,1]
*/
public static void setSoundVolume(float volume)
{
audio.setMasterVolume(volume);
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putFloat("soundVolume", volume).commit();
}
/**
* set music volume
*
* @param volume range[0,1]
*/
public static void setMusicVolume(float volume)
{
RokonMusic.getMediaPlayer().setVolume(volume, volume);
SharedPreferences preferences = Rokon.getActivity().getSharedPreferences(settingFile, 0);
preferences.edit().putFloat("musicVolume", volume).commit();
}
/** release instances, garbage collection */
public static void dealloc()
{
try
{
audio.destroy();
RokonMusic.stop();
RokonMusic.getMediaPlayer().release();
soundMap.clear();
audio = null;
soundMap = null;
musicFile = null;
}
catch (NullPointerException e)
{
}
}
}