1. android에서 오디오 재생은 MediaPlayer 클래스를 이용합니다.
2. playAudio() (사용자 정의 메소드) : 재생을 누르면 MediaPlayer 객체를 생성하고 mp3를 시작합니다.
3. MediaPlayer.stop(); : mediaPlayer를 정지합니다 동시에 객체를 null로 초기화합니다.
4. playbackPosition = mediaPlayer.getCurrentPosition(); : 정지(pause())를 하기전에 현재 재생중인 위치를 저장합니다.
5. MediaPlayer.pause() : 실행중이던 오디오를 중지합니다
6. if(mediaPlayer !=null && !mediaPlayer.isPlaying()){
mediaPlayer.start();
mediaPlayer.seekTo(playbackPosition);
미디어 플레이어 객체가 존재하는데 재생 중이지 않으면(=일시정지인 상태) 다시 start()합니다.
이때 pause()(일시정지) 할 때 저장했던 playbackPosition 위치를 seekTo() 메서드에 넣어주어서 해당 위치부터 재시작 되도
록합니다.
* 중요
음악파일을 프로젝트에 넣기 위해서는 res폴더 - raw폴더에 넣어주셔야 합니다 (raw폴더는 생성해주어야 합니다)
그리고 raw폴더안에 mp3파일을 넣게되면 R.java에 raw클래스가 하나 만들어지고 그 안에 mp3 인덱스가 부여됩니다.
해당 인덱스를 이용해서 음악을 순차적으로 재생할 수도 있습니다!?
//노래나 비디오 재생이 가능한 플레이어 변수
private MediaPlayer mediaPlayer;
//중지될 때의 재생 위치
private int playbackPosition =0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//외부 서버나 외부 음악파일 다운로드 시
/*mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource("http://10.0.2.2:8080/webapp/song/song.mp3");
//다운로드가 다될 때 까지 준비하는 메소드이며 준비가 다되면 그다음 단계로 진행
mediaPlayer.prepare();
mediaPlayer.start();*/
}
@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;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}