일단 미디어플레이어로 음악 재생하는 부분은 완성하고 시간가는거랑 시크바 이동하는거는 했는데
다음곡을 자동으로 재생하는거에서 막혔습니당..
SD카드 이용하지않고
raw폴더에 넣고 배열로 선언하는 식으로 했는데요 도와주세요 ㅠㅠ
미디어 플레이어가 재생되고 멈추는 부분의
소스는
private MediaPlayer mp;
private SeekBar seekbar;
private int songtime = 0;
private Handler seekbar_handler;
int[] a ={R.raw.part1,R.raw.part2,R.raw.part1};
static int count = 0;
.
.
.
.
private void mp_play() {
if(mp == null) {
mp = MediaPlayer.create(this, a[count]);
mp.setLooping(false);
mp.setScreenOnWhilePlaying(true);
}
mp.seekTo(songtime);
if(!mp.isPlaying()) {
mp.start();
seekbar_handler = new Handler() {
public void handleMessage(Message msg) {
System.out.println("seekbar.getprogress() =" + seekbar.getProgress());
if(seekbar.getProgress() + 300 >= seekbar.getMax()) {
bt1.setVisibility(VISIBLE);
bt2.setVisibility(INVISIBLE);
seekbar.setProgress(0);
mp_pause();
}else{
seekbar.setProgress(mp.getCurrentPosition());
}
if(seekbar_handler != null) {
seekbar_handler.sendEmptyMessageDelayed(0, 200);
}
}
};
seekbar_handler.sendEmptyMessage(0);
}
}
private void mp_pause() {
if(mp != null) {
mp.release();
mp = null;
}
if(seekbar_handler != null) {
seekbar_handler.removeMessages(0);
seekbar_handler = null;
}
}
SeekBar.OnSeekBarChangeListener ListenGeneratior = new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
if(mp != null) {
if(mp.isPlaying()){
mp_pause();
mp_play();
}
}
}
.
.
.
이정도에용 ㅠㅠ
이부분만 보고 알수 있을지 모르겠지만...
도움 부탁드려용^^:;;;
int[] a ={R.raw.part1,R.raw.part2,R.raw.part1}; 이런식으로 선언하여 part1 part2 part1 이순서로 진행하고 마지막곡 재생되면 자동 루프되지 않고 멈출수 있는 방법 도 아시면 알려주세요..........




한 곡이 완료된 후 다음 곡을 준비해서 재생하면 됩니다.
재생이 완료될경우를 알려주는 인터페이스가 있습니다.
http://developer.android.com/reference/android/media/MediaPlayer.OnCompletionListener.html
배열에 곡을 두셨으므로
현재 재생되는 인덱스를 변수로 만드시고
한 곡이 끝날 때마다 index++하신 후 MediaPlayer를 처음부터 다시 시작시키면 됩니다. (새로 생성하던가 / reset > setDatasource > prepare 과정을 거침)
자동 루프 종료는 index++한 값이 배열크기와 같다면 아무 처리를 하지 않으시면 됩니다.