2011-12-29 57 views
0

我試圖播放多個音頻文件,一個接一個地播放,目前我正在使用AsyncTasks準備並啓動mediaPlayer,但未能找到一種好的方法來移動到最後的下一個軌道目前的一個。並非每個音頻文件都會每次播放,播放由布爾值決定。AsyncTasks and Audio

任何幫助都非常讚賞。

回答

1

我想您已經閱讀Android的SDK /文檔/參考/安卓/媒體/ MediaPlayer.html,它說:

當播放到結束的流,播放完成。 如果使用setLooping(布爾值)將循環模式設置爲true,則MediaPlayer對象應保持啓動狀態。如果循環 模式設置爲false,則播放器引擎會調用用戶提供的 回調方法OnCompletion.onCompletion(),如果 OnCompletionListener事先通過 setOnCompletionListener(OnCompletionListener)註冊。調用 回調信號,該對象現在處於Playback Completed 狀態。當處於PlaybackCompleted狀態時,調用start()可以從 重新開始從音頻/視頻源開始播放。

所以你可以設置一個新的源,prepareAsync然後開始完成回調。通過這種方式,您可以連續播放,但不是無縫的。

+0

謝謝,這是使用同一個mediaPlayer播放所有曲目的好方法 – Flynn 2011-12-29 19:03:44

0

令人懷疑使用MediaPlayer爲此將工作就像你想要的。試試這個教程:

http://www.droidnova.com/creating-sound-effects-in-android-part-1,570.html

如果不工作,你可能不得不聲音一起混合自己與他們直接流這一結果使用AudioTrack硬件。這是更低的水平,但它會給你最大的控制。如果AudioManager解決方案適用於您,它取決於您正在做什麼。這絕對是更簡單的路線。但是,如果您想要排列兩個樣本,以便在下一個樣本完成時(如在音樂應用程序中),您可能必須自己混合並傳輸該音頻。

http://developer.android.com/reference/android/media/AudioTrack.html

Algorithm to mix sound