0
我正在制作一个带有服务的音乐播放器,但是当我点击音乐列表中的一首歌曲时,音乐开始时没有错误,但是如果我回到列表并单击另一个,我会得到Attempt to call getDuration without a valid mediaplayer error (-38, 0)
服务无法运行两次
我OnStart方法在服务:
@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();
}
我开始startService(i);
的服务,我已经设置了music.setOnPreparedListener
所以没有什么是早期拼命地跑来。
如何让它工作?
我打电话重置()之前准备..?我需要准备好的听众确保音乐准备就绪,然后才能像music.getDuration那样调用,否则会出现错误。 – Piratkopia13