간단한 어플을 만들고 있는데요.
어플을 실행시키면 배경음악이 나오게끔 만들고 있습니다.
그래서...
private MediaPlayer backgroundsound;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
backgroundsound = MediaPlayer.create(getBaseContext(),
R.raw.uefa_champions_league);
// MediaPlayer 재생
backgroundsound.start();
// MediaPlayer 반복
backgroundsound.setLooping(true);
}
메인 액티비티에 이런식으로 해서 어플이 시작되면 배경음악이 나오게끔은 했습니다.
그리고, onDestroy 를 사용해서 어플에서 나가면 음악도 종료되게끔은 했습니다.
이거 안했을 때는 어플을 꺼도 음악이 계속 나오더군요..
안멈춰져서 어플 삭제해서 음악 멈춰버렸네요.ㅋㅎ
protected void onDestroy() {
super.onDestroy();
// MediaPlayer 해제
backgroundsound.release();
}
그런데!...
안드로이드는 홈버튼이 있지 않습니까
홈버튼으로 나가게 되면 음악이 멈추지 않고 계속 나오더라구요.
이건 어떻게 해결해야 하나요.
그리고...
환경설정을 할 수 있는 액티비티를 만들어놨는데.
환경설정 액티비티에서 버튼으로 이벤트를 주면 노래가 종료되었다가, 다시 버튼을 누르면 음악이 흘러나오게끔 하고 싶습니다.
그래서
환경설정 액티비티에서도 메인 액티비티에서 한 것처럼 객체 생성해주고 버튼 이벤트에다가 stop()메소드를 넣어주었는데도
음악이 계속 나오더라구요.
이건 제 생각에 아마 액티비티가 달라서 그런거 같은데...
다른 액티비티에서 제어할 수 있게하려면 어떻게 해야 될까요.
안드로이드 개발자분들의 많은 조언 부탁드리겠습니다.
홈화면나갈시에 음악을 멈추시는건
액티비티에서 포커스를 잃었을때 호출되는 콜백메소드를 이용해서 MediaPlayer를 컨트롤 하시면 될 것 같습니다.
예를 들어 onPause() 함수에서 stop()하고
onResume() 함수 start()하면 될듯하구요.
다른 액티비티에서 컨트롤 하시는건
MediaPlayer 자체를 static으로 선언해서 어떤 액티비티에서든
똑같은 인스턴스를 참조하도록 구현하셔야 할 것 같습니다.