我正在开发Android,并且一直在尝试创建一个Async任务,以依赖一组布尔值的顺序播放音频文件(如果i1为true,则播放i1,然后在播放时i1完成了,如果i2是真的,那么它就会播放,等等)。我的第一次尝试不会崩溃应用程序,但也不会播放音频文件。Android:播放多个音轨
class SessionMusicTask extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
try {
while(playing == true){
if(i1 == true && done == true){
done = false;
player.setDataSource(i1Loc);
player.prepare();
player.start();
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
done = true;
}
});
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
这是解决问题的最佳方法吗?任何想法为什么文件没有播放? 感谢您提前提供任何帮助。
更新: 我只是在onPostExecute()中放了一个finish(),活动几乎立即结束,导致我相信任务甚至没有开始播放音频文件?
好的建议,问题仍然没有解决。 – Flynn 2011-12-29 06:01:04
这已被接受......这实际上是否解决了这个问题? – Rob 2012-03-30 12:03:19