音楽をストリーミングするアプリを作成しています。service
バックグラウンドでオンライン mp3 ファイルから音楽を再生するために を使用しています。しかし、サービスは で停止しprepareAsync()
、準備が完了しないため、音楽の再生は開始されません。すなわち。onPrepared()
メソッドが呼び出されることはありません。注: 同じコードactivity
を a の代わりに使用しましたがservice
、この問題は発生しません。ここで何が問題なのですか?コード:
public class mp3playerservice extends IntentService implements OnPreparedListener {
String track;
String info[];
String name;
MediaPlayer mp;
Bundle extras;
public mp3playerservice() {
super("mp3playerservice");
}
// Will be called asynchronously be Android
@Override
protected void onHandleIntent(Intent intent) {
extras = intent.getExtras();
info=extras.getStringArray("info");
track=info[1];
name=info[0];
mp= new MediaPlayer();
if(mp.isPlaying()){
mp.release();
mp=new MediaPlayer();
}
start1(track);
}
void start1(String a){
try{
mp.setDataSource(a);
mp.setOnPreparedListener(this);
mp.prepareAsync();
}catch(Exception e){
Log.d("error is "+e.toString(),"error came up");
}
}
public void onPrepared(MediaPlayer mp4){
mp.start();
Log.d("in here2","okay");
}
}