마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

액티비티 종료시 사운드가 죽지 않습니다.

0 추천
액티비티가 캐릭터가 죽었을 경우 재시작과 메인화면으로 돌아가게 되어있는데
이경우 사운드는 죽지 않고 계속 살아있어서 동일한 사운드가 두개가 겹쳐 들리게 됩니다
어떻게 해야할까요
 
프로젝트는 MainActivity.java 에서 activityMain.xml를 불러
프레임 레이아웃 내부에서 ProjectView를 띄우도록 되어있습니다.
 
 
public ProjectView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext = context;
// TODO Auto-generated constructor stub
SurfaceHolder holder = getHolder();
        holder.addCallback(this);
 
        MediaPlayer mp= new MediaPlayer();
    mp = MediaPlayer.create(mContext, R.raw.bgm);
    mp.setLooping(true);
    mp.start();
        // create thread only; it's started in surfaceCreated()
        thread = new ImageThread(holder, context, new Handler() {
            @Override
            public void handleMessage(Message m) {
                mStatusText.setVisibility(m.getData().getInt("viz"));
                mStatusText.setText(m.getData().getString("text"));
            }
        });
        setFocusable(true);
// TODO Auto-generated constructor stub
}
 
----------------------------------------------------------------------------------------
 
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
 
if(event.getAction() == MotionEvent.ACTION_DOWN){
//재시작 터치 이벤트
if(isDead == true && dRestart.contains((int)event.getX(),(int)event.getY())){
Intent it = new Intent(mContext,MainActivity.class);
mActivity.startActivity(it);
mActivity.finish();
}
//메인화면으로 돌아가기 터치 이벤트
else if(isDead == true && dReturn.contains((int)event.getX(),(int)event.getY())){
Intent it = new Intent(mContext,CoverActivity.class);
mActivity.startActivity(it);
mActivity.finish();
}

 

흑염화 (120 포인트) 님이 2015년 6월 8일 질문

1개의 답변

0 추천

메인화면 이랑 게임 재시작 하면 틀어놨던 mp 사운드가 2겹쳐서 들린다는건가요 ?

근데 도대체

mp.setLooping(true);

mp.start();
해주시고 멈추는 부분은 어디다 선언하신거죠 ?  Activirt 를 mActivity.finish(); 전이나 후에 mp.stop 처리 해줘보세요  
익명사용자 님이 2015년 6월 8일 답변
...