제가 플레이어를 만들고 있는데요
만약에 음악 재생이라는 서비스를 만든후에
다시 재생버턴을 누르면
서비스가 중복되어서 실행이 개속 됩니다.
그러다가 스톱 서비스를 누르면 오류가 뜹니다.
<service android:name=".Mp3playerservice"/>
서비스 부분
public class Mp3playerservice extends Service {
MediaPlayer mp;
int state;
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public void mp3playopen(String Datasource) throws IllegalArgumentException, IllegalStateException, IOException
{
mp = new MediaPlayer();
mp.setDataSource("/sdcard/"+Datasource +".mp3");
System.out.println("/sdcard/"+Datasource +".mp3");
mp.prepare();
}
public void mp3playstart()
{
mp.start();
}
public void mppause()
{
mp.pause();
}
public void mpstop()
{
mp.stop();
mp.release(); // MediaPlayer 객체를 Release합니다.
}
public int mpCurrent()
{
return mp.getCurrentPosition();
}
public int setOnCompletionListener()
{
mp.setOnCompletionListener(new OnCompletionListener()
{
@Override
public void onCompletion(MediaPlayer mp) {
state=3;
}
}
);
return state;
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
super.onCreate();
try {
mp3playopen("Jessica-Goodbye");
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp3playstart();
}
}
호출부분
startService(new Intent(Play.this,Mp3playerservice.class));
정지부분
stopService(new Intent(Play.this,Mp3playerservice.class));