본문 바로가기

Android

Android : 뮤직플레이어

뮤직플레이어

간단한 음악재생 프로그램을 만들어보고자 한다.
미디어파일을 재생하기 위해서 res아래 raw 디렉토리를 생성하고 안에 파일을 넣는다. 



mediaPlayer객체를 new로 만들지 않고 create 메소드로 플레이어를 생성한다.
첫번째 파라미터로 getApplicationContext()를, 두번째 파라미터로 재생할 곡을 넣는다.
mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.crazy_love);// new를 쓰는 것이 아니라 플레이어 생성

play버튼 누르면 재생중인지 판별하고 아닐때만 재생한다.
btn_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
btn_play.setText("START");

}else{
//getApplicationContext() 현재 액티비티 정보얻어오기
mediaPlayer = MediaPlayer.create(getApplicationContext(), array[index]);
mediaPlayer.start();
btn_play.setText("STOP");
}
}
});


배열과 인덱스를 이용해 이전곡, 다음곡을 재생하도록 통제한다.

package com.example.pc_20.musicplayer;

import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.io.IOException;

public class MainActivity extends AppCompatActivity {

Button btn_play;
Button btn_next;
Button btn_pre;

MediaPlayer mediaPlayer;
int[] array = {R.raw.crazy_love, R.raw.down, R.raw.jajang, R.raw.roses};
int index = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn_play = findViewById(R.id.btn_play);
btn_next = findViewById(R.id.btn_next);
btn_pre = findViewById(R.id.btn_pre);

mediaPlayer = MediaPlayer.create(getApplicationContext(), R.raw.crazy_love);// new를 쓰는 것이 아니라 플레이어 생성

btn_play.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
btn_play.setText("START");

}else{
//getApplicationContext() 현재 액티비티 정보얻어오기
mediaPlayer = MediaPlayer.create(getApplicationContext(), array[index]);
mediaPlayer.start();
btn_play.setText("STOP");
}
}
});

btn_next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
index+=1;
if(index>=array.length){
index=0;
}
mediaPlayer = MediaPlayer.create(getApplicationContext(), array[index]);
mediaPlayer.start();
}else{
Toast.makeText(getApplicationContext(), "재생중이 아닙니다",Toast.LENGTH_LONG).show();
}

}
});

btn_pre.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

if(mediaPlayer.isPlaying()){
mediaPlayer.stop();
index-=1;
if(index<0){
index=array.length-1;
}
mediaPlayer = MediaPlayer.create(getApplicationContext(), array[index]);
mediaPlayer.start();
}else{
Toast.makeText(getApplicationContext(), "재생중이 아닙니다",Toast.LENGTH_LONG).show();
}


}
});
}
}