我正在開發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