Android 服务无法运行两次
我正在制作一个带有服务的音乐播放器,但当我单击音乐列表中的一首歌曲时,音乐开始时没有错误,但如果我返回列表并单击另一首,我将尝试调用getDuration,但没有有效的mediaplayer错误-38,0 服务中的My onStart方法:Android 服务无法运行两次,android,service,media-player,Android,Service,Media Player,我正在制作一个带有服务的音乐播放器,但当我单击音乐列表中的一首歌曲时,音乐开始时没有错误,但如果我返回列表并单击另一首,我将尝试调用getDuration,但没有有效的mediaplayer错误-38,0 服务中的My onStart方法: @Override public void onStart(final Intent i, int startid) { Log.d(TAG, "Start music"); re = 0; songUrl = i.getData
@Override
public void onStart(final Intent i, int startid) {
Log.d(TAG, "Start music");
re = 0;
songUrl = i.getData().toString();
streamMusic = new Thread() {
public void run() {
Looper.prepare();
try {
re = 1;
music.reset();
music.setDataSource(songUrl);
music.prepare();
this.interrupt();
} catch (Exception e) {
e.printStackTrace();
}
}
};
streamMusic.start();
}
我使用startServicei启动服务;我已经设置了一个music.setOnPreparedListener,这样就不会提前运行任何程序
如何使其工作?再次调用prepare之前,请尝试调用reset方法。
另外,如果您正在调用prepare而不是prepareAsync,我不明白您为什么需要使用prepared侦听器。我正在调用reset before prepare。。?在我调用like music.getDuration之前,我需要准备好的侦听器确保音乐已经准备好,否则我会出错。