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

버튼 5개 생성 후 버튼 마다 다른 음악(MP3) 지정하는 방법

0 추천
package com.example.music;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.media.MediaPlayer;

public class MainActivity extends Activity {
 private MediaPlayer MP;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  
  MP=MediaPlayer.create(this, R.raw.music1);
  
  final Button btn1=(Button)findViewById(R.id.btn1);
  btn1.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v)
            {
                if(MP.isPlaying()){
                btn1.setText("음악1");
                MP.pause();
                }else{
                btn1.setText("멈춤");
                MP.start();
                MP.setLooping(true);
                }
            }
        });  
  
  final Button btn2=(Button)findViewById(R.id.btn2);
  MP=MediaPlayer.create(this, R.raw.music2);
  btn2.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP.isPlaying()){
                btn2.setText("음악2");
                MP.pause();
                }else{
                btn2.setText("멈춤");
                MP.start();
                MP.setLooping(true);
                }
            }
        });
  
  MP=MediaPlayer.create(this, R.raw.music3);
  final Button btn3=(Button)findViewById(R.id.btn3);
  btn3.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP.isPlaying()){
                btn3.setText("음악3");
                MP.pause();
                }else{
                btn3.setText("멈춤");
                MP.start();
                MP.setLooping(true);
                }
            }
        });
  
  MP=MediaPlayer.create(this, R.raw.music4);
  final Button btn4=(Button)findViewById(R.id.btn4);
  btn4.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP.isPlaying()){
                btn4.setText("음악4");
                MP.pause();
                }else{
                btn4.setText("멈춤");
                MP.start();
                MP.setLooping(true);
                }
            }
        });
  
  MP=MediaPlayer.create(this, R.raw.music5);
  final Button btn5=(Button)findViewById(R.id.btn5);
  btn5.setOnClickListener(new Button.OnClickListener() {
            public void onClick(View v)
            {
                if(MP.isPlaying()){
                btn5.setText("음악5");
                MP.pause();
                }else{
                btn5.setText("멈춤");
                MP.start();
                MP.setLooping(true);
                }
            }
        });
   }

 protected void onStop() {
  MP.stop();
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }

}

 

현재 제가 짠 코드입니다 쌩 초보라.. 여기까지가 한계네요 ㅠㅠㅠ

버튼 다섯개 생성후 각 버튼마다 다른 음악파일(MP3)을 raw 폴더에 넣는데..

하나씩 누를때마다 음악이 바뀌어야 하는데...

전 안바뀌네요 ㅠㅠ 제가 잘못한건지...

어떻게 하면 각 버튼마다 음악을 넣을 수 있을까요?

정리하자면, 버튼 5개, 음악 5개 입니다
martin_Mac (370 포인트) 님이 2013년 5월 1일 질문

2개의 답변

0 추천
MediaPlayer를 SoundPool로 바꿔서 사용해 보세요.
갈무리 (12,430 포인트) 님이 2013년 5월 2일 답변
0 추천
package com.example.music;
 
import android.os.Bundle;
 import android.app.Activity;
 import android.view.Menu;
 import android.view.View;
 import android.widget.Button;
 import android.media.MediaPlayer;
 
public class MainActivity extends Activity {
  private MediaPlayer MP;
 
 @Override
  protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
 
  
   final Button btn1=(Button)findViewById(R.id.btn1);
   MP=MediaPlayer.create(MainActivity.this, R.raw.music1); // 처음 곡 defalut 값으로 등록
   btn1.setOnClickListener(new Button.OnClickListener() {
     public void onClick(View v)
  {
       if(MP.isPlaying()){
       btn1.setText("음악1");
    MP.pause();
    }else{
     btn1.setText("멈춤");
           MP=MediaPlayer.create(MainActivity.this, R.raw.music1); // mp3 파일 등록
           MP.start();
           MP.setLooping(true);
       }
  }
   });
  
   final Button btn2=(Button)findViewById(R.id.btn2);
   btn2.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v)
   {
       if(MP.isPlaying()){
        btn2.setText("음악2");
     MP.pause();
    }else{
     btn2.setText("멈춤");
        MP=MediaPlayer.create(MainActivity.this, R.raw.music2); // mp3 파일 등록
        MP.start();
        MP.setLooping(true);
       }
   }
   });
  
  
   final Button btn3=(Button)findViewById(R.id.btn3);
   btn3.setOnClickListener(new Button.OnClickListener() {
   public void onClick(View v)
   {
       if(MP.isPlaying()){
        btn3.setText("음악3");
        MP.pause();
       }else{
        btn3.setText("멈춤");
           MP=MediaPlayer.create(MainActivity.this, R.raw.music3); // mp3 파일 등록
           MP.start();
           MP.setLooping(true);
          }
   }
 });
 }

. . . . . . . .
 
 protected void onStop() {
   MP.stop();
  }
 
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
   // Inflate the menu; this adds items to the action bar if it is present.
   getMenuInflater().inflate(R.menu.main, menu);
   return true;
  }

}

다음과 같이 해보시기 바랍니다. 버튼 4와 5는 생략하였습니다.
센스가이 (2,010 포인트) 님이 2013년 5월 2일 답변
센스가이님이 2013년 5월 2일 수정
...