private void playAudio(String filePath)
{
try
{
mp.reset();
mp.setDataSource(filePath);
mp.prepare();
mp.start();
btnPlay.setText("중지");
mp.setOnCompletionListener(new OnCompletionListener(){
public void onCompletion(MediaPlayer mp1)
{
btnPlay.setText("재생");
playPosition++; //재생 위치를 1 증가 시킨다.
nextAudio();
}
});
}
catch(Exception err)
{
ToastMessage(err.getMessage(), Toast.LENGTH_LONG);
}
}
private void nextAudio()
{
if(playPosition<playFileList.size())
{
playAudio(playFileList.get(playPosition));
}
else
{
ToastMessage("마지막 곡입니다.", Toast.LENGTH_LONG);
}
}
private void BeforeAudio()
{
if(playPosition<playFileList.size())
{
playAudio(playFileList.get(playPosition));
}
else
{
ToastMessage("첫 곡입니다.", Toast.LENGTH_LONG);
}
}
private OnClickListener reButtonClickListener = new OnClickListener(){
public void onClick(View v)
{
switch(v.getId())
{
case R.id.btnPlay:
if(mp.isPlaying())
{
mp.stop();//재생 정지
btnPlay.setText("재생");
}
else
{
//searchFileList에서 선택한 곡만을 모아서 playFileList를 만든다.
playFileList.clear();//재생목록 초기화
SparseBooleanArray sba = lvFileList.getCheckedItemPositions();
int max = sba.size();
for(int i=0;i<max;i++)
{
if(sba.valueAt(i))
{
playFileList.add(searchFileList.get(sba.keyAt(i)));
}
}
//playFileList의 음악을 하나씩 재생한다.
if(playFileList.size()>0)
{
playPosition=0;//처음 시작은 처음 부터 한다.
playAudio(playFileList.get(playPosition));
}
}
break;
case R.id.btnNext:
playPosition++; //재생 위치를 1 증가 시킨다.
nextAudio();
break;
case R.id.btnBefore:
playPosition--; //재생 위치를 1 감소 시킨다.
BeforeAudio();
break;
}
}
};
}
안드로이드 펍 회원님들의 도움을 받아, 이전 곡 재생기능을 추가하였습니다, 그 결과 리스트에서 여러 곡 선택후, 선택한 곡을 다음으로 가고, 뒤로 가는 기능을 추가하게 되었습니다. 그러나 오류가 하나 발생하였습니다.
제일 첫번째 곡입니다, 메시지가 떠야되는 상황이 발생되면 튕김 현상이 일어났습니다.
그래서 텍스트가 문제인줄 알고 maketext 로 변경 과 제거를 하였지만 고쳐지지 않았습니다..
그 다음으로는 포지션이 마이너스가 되어서 문제가 생겼는지 해서 포지션을 0으로 설정하는 방법과, ++하는
방법을 써봤지만, 실패하여서 게시물을 올립니다.. 해결방법을 알려주세요.. 부탁드립니다...