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

다른액티비티에있는 mediaplayer를 또다른액티비티에서 멈추게하기..

0 추천
package com.example.mobileproject;

import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;



public class MainActivity extends Activity {
	MediaPlayer mp;
	Button bt1, bt2, bt3;
    SoundPool sp;
    int s1;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		bt1 = (Button) findViewById(R.id.gamestart);
		bt2 = (Button) findViewById(R.id.help);
		bt3 = (Button) findViewById(R.id.credit);

		sp = new SoundPool(2, AudioManager.STREAM_MUSIC,0);
        s1 = sp.load(this, R.raw.opening,1);
        sp.play(s1,1,1,0,0,1); 
	
        mp= MediaPlayer.create(getApplicationContext(), R.raw.scare);
        mp.setLooping(true);
       
	   


		bt1.setOnClickListener(new View.OnClickListener() {	
			@Override
			public void onClick(View v) {
				Intent intent= new Intent(getApplicationContext(),TwoActivity.class);
				startActivity(intent);
				 mp.start();
				
			}

			
			
		});
		
		bt2.setOnClickListener(new View.OnClickListener() {	
			@Override
			public void onClick(View v) {
				Intent intent= new Intent(getApplicationContext(),HelpActivity.class);
				startActivity(intent);		
			}
		});
		
		bt3.setOnClickListener(new View.OnClickListener() {	
			@Override
			public void onClick(View v) {
				Intent intent= new Intent(getApplicationContext(),CreditActivity.class);
				startActivity(intent);
				
			}
			
		});
		
		/*protected void onDestroy(){
	    	  super.onDestroy();
	  	      
	  	      mp.release();
	  	  }*/   
	}
 
	
}

이게 메인액티비티입니다.

package com.example.mobileproject;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
import com.example.mobileproject.*;
public class FourActivity extends Activity {
	Button bt1, bt2;
	EditText et1;
	ImageView imgV1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.four);
		bt1=(Button)findViewById(R.id.next04);
		bt2=(Button)findViewById(R.id.main04);
		et1=(EditText)findViewById(R.id.edit04);
		imgV1=(ImageView)findViewById(R.id.quiz01);
		
		  
		bt1.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				
				if(et1.getText().toString().equals("39")){
					Intent intent = new Intent(getApplicationContext(),FiveActivity.class);
					startActivity(intent);
					finish();
				}else{
					Toast.makeText(getApplicationContext(), "틀렸습니다", 0).show();
				}
				
			}
		});
		bt2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = new Intent(getApplicationContext(),
						MainActivity.class);
				startActivity(intent);
				finish();
				
			}
		});
		imgV1.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Toast.makeText(getApplicationContext(), "쉬우므로 힌트는 없습니다", 0).show();
				
			}
		});
		
	}

}

이게 다른액티비티인데 메인액티비티에있는 미디어플레이어를 2번째에있는 소스에서 pause나 stop 하려면 

  protected void onDestroy(){
      super.onDestroy();
      
      mp.release(); 나 mp:pause();
를써야하는데 어디에 어떻게 해야할지 감이안옵니다..
상속을 받아도 안되느데... 어떻게해야할지 부탁드립니다..ㅠㅠ
그레이또 (230 포인트) 님이 2013년 12월 12일 질문

1개의 답변

0 추천
 
채택된 답변
MediaPlayer 의 경우에는 여러 곳에서 제어를 해야하기 때문에 service에서 구현하고

해당 service에 바인드해서 제어하는 방법으로 구현하시는것이 좋은 방법입니다.
Gradler (109,780 포인트) 님이 2013년 12월 12일 답변
그레이또님이 2013년 12월 12일 채택됨
서비스 구현방법이 어떤것이죠?
Service라는 컴포넌트를 아직 사용안해보셨나보군요..
링크 보시고 대충 참고만 하시길
http://arabiannight.tistory.com/85
...