게임중 사용할 배경음악 관리하는 Class

2011. 10. 15. 12:44프로그래밍/Android

728x90
반응형
게임을 만드는데 유용한 다양한 엔진들이 있다.
하지만 본소스 직접 만들때 사용하면 도움이 될만한 소스다.



import java.util.Vector;
import android.media.MediaPlayer;


/*************************************************************************************************
 * 작성자 : (주)마노디오 신수원 
 * 작성일 : 2011.10.15일
 * 파일명 : MusicManager.java

 * 내용 : 게임중 효과음이 아닌 배경을 틀어주기 위해서 사용된 배경음악 관리자 Class입니다.
 * 사용방법은 아주 간단합니다.
 *
 * //다음과 같이 틀어줄 음악의 고유 아이디를 선언해줍니다.
 * static final  int MUSIC_TITLE = 0;
 * 
 * //다음과 같이 MusicManager를 선언하고 addMusic을 통해서 사용항 음악들을 추가해줍니다.
 * MusicManager bgmMan = new MusicManager();
bgmMan.addMusic(MUSIC_TITLE, MediaPlayer.create(myContext, R.raw.bgm_00_title ));
//그리고 실제로 틀어줄때는 다음 함수를 호출해줍니다.
bgmMan.setMusic(MUSIC_TITLE);
//그리고 어플을 종료할때는 필히 다음 함수를 호출해서 로딩한 리소스를 풀어줍니다.
bgmMan.releaseAll();
 *************************************************************************************************/

class MusicManager implements GameDefines
{
public boolean isMusicOn = true;
Vector<MediaPlayer> bgmBuffer = new Vector<MediaPlayer>();
public MediaPlayer mp_BGMusic = null;
/*
* 생성자.
*/
public MusicManager()
{
}
/*
* 버퍼에 틀어줄 음악을 등록해준다.
*/
public void addMusic(int ID, MediaPlayer MP)
{
bgmBuffer.add(ID,MP);
}
/*
* 음악 및 효과음을 죽여준다.
*/
public void setSoundOff()
{
isMusicOn = false;
if(mp_BGMusic.isPlaying() == true)mp_BGMusic.pause();
}
/*
* 음악 및 효과음을 살려준다.
*/
public void setSoundOn()
{
isMusicOn = true;
if(mp_BGMusic != null) 
{  
if(mp_BGMusic.isPlaying() == false)
{
mp_BGMusic.setLooping(true);
mp_BGMusic.start();
}
}
}
/*
* 배경음악을 틀어준다.
*/
    public void setMusic(int ID)
    {
    if(isMusicOn == true)
    {
    mp_BGMusic.pause();
    mp_BGMusic =bgmBuffer.elementAt(ID);    
    mp_BGMusic.setLooping(true);
    mp_BGMusic.start();
    }
    }
    
    /*
     * 배경 음악과 관련된 리소스들 풀어준다.
     */
    public void releaseAll()
    {
    for(int i=0; i< bgmBuffer.size()  ;i++)
    {
    mp_BGMusic =bgmBuffer.elementAt(i);
    mp_BGMusic.release();
    }
    }
}
728x90
반응형