2014-10-28 144 views
0

我需要按照MediaPlayer的順序播放聲音文件順序。如果我使用setOnCompletionListener,則代碼會變得如此長:如何按順序播放聲音?

one.start(); 
one.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     public void onCompletion(MediaPlayer mp) { 
     two.start(); 
     two.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      public void onCompletion(MediaPlayer mp) { 
      two.start(); 
      ...three...four... 
     } 
    }); 
    } 
}); 

它有更實用的方法嗎?

+0

當然,製作一個兩個三等的陣列(或陣列列表,如果你不知道長度)等 – DreadHeadedDeveloper 2014-10-28 15:12:02

+0

什麼是一個兩個三? – DreadHeadedDeveloper 2014-10-28 15:12:23

+0

我從@Jibran汗學到了「setDataSource(arrayList)」 謝謝 – 2014-10-28 15:18:09

回答

1

只能將播放器的來源更改爲下一個媒體。

one.start(); 
one.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
     public void onCompletion(MediaPlayer mp) { 
      one.setDataSource(loopthroughSources); //may be an array or list of files path 
      one.start(); 
     } 
    }); 
    } 
}); 
+0

這是我一直在尋找的東西。謝謝! – 2014-10-28 15:16:15

+0

快樂編碼:) – 2014-10-28 15:30:25