안드로이드 개발 질문/답변
(글 수 45,052)
버튼을 이용해서 사운드를 on하고 나서
off버튼을 누르지않고 그냥 뒤로버튼을 하면
사운드는 그냥 들리고 화면만 뒤로 넘어가는데
해결방법좀 자세히좀 알려주세요 ㅠㅠ
아직 초보앱개발자라 모르는게 많네요 부탁드립니다.
2011.08.05 14:59:55
package com.androidsample.Action_Sound;
import java.io.IOException;
import android.app.Activity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.View;
public class Sounds extends Activity {
private MediaPlayer mPlayer = null;
private MediaPlayer mPlayer2 = null;
private MediaPlayer mPlayer3 = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO Auto-generated method stub
setContentView(R.layout.sounds);
mPlayer = new MediaPlayer();
mPlayer2 = new MediaPlayer();
mPlayer3 = new MediaPlayer();
mPlayer = MediaPlayer.create(this, R.raw.naraku);
mPlayer2 = MediaPlayer.create(this, R.raw.babo);
mPlayer3 = MediaPlayer.create(this, R.raw.goja);
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_comic1:
mPlayer.seekTo(0);
mPlayer.start();
break;
case R.id.btn_comic2:
mPlayer2.seekTo(0);
mPlayer2.start();
break;
case R.id.btn_comic3:
mPlayer3.seekTo(0);
mPlayer3.start();
break;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mPlayer.stop();
mPlayer.release();
mPlayer2.stop();
mPlayer.release();
mPlayer3.stop();
mPlayer.release();
}
}
이소스 보면 모든것이 해결되실겁니다.
onDestroy() 요부분이 액티비티를 뒤로넘길시 재생 멈추게 하는부분입니다.




MediaPlayer를 이용하여 사운드를 키셨나 보네요.
MediaPlayer는 기본적으로 Service에서 동작합니다.
start()를 하면 service에 올라가 계속 재생이 되는 것이죠.
사운드를 재생하는 Activity에서 onDesdroy나 onPause를 이용하여
멈추게 하시면 됩니다.