顯然不會引發異常,以便在緩衝流式音頻內容時識別錯誤。例如,我斷開了我的路由器,應用程序將繼續嘗試緩衝整個時間。當我重新連接時,它會完成緩衝並在斷開連接一分鐘後繼續進行!檢測緩衝錯誤(或超時)Android MediaPlayer - 使用計時器超時?
所以問題是我不能讓我的用戶坐在那裏很長時間沒有考慮到一個問題。使用Android媒體播放器檢測緩衝問題的正確方法是什麼?
我在考慮使用Timer超時。我會以15秒開始(使用代理我測試了一個5kbps的連接,這將是最糟糕的情況,能夠在6-10秒內開始播放,所以我認爲15秒將是一個合理的超時時間)。這聽起來像是一個好計劃嗎?如果是這樣,我應該創建一個每個緩衝區嘗試一個新的計時器,或者我應該在播放服務的整個生命週期保持相同的計時器?
所以基本上我問兩個問題:
1)什麼是檢測一個緩衝區有問題的正確方法?有沒有我忽略的聽衆?我試過MediaPlayer.OnErrorListener當然不會在我的測試中觸發。我的結論是我必須有一個超時檢測緩衝錯誤。
2)如果我對號碼是正確的,那麼使用定時器的正確方法是什麼?創建一個與每個緩衝區嘗試或重用相同的? 編輯也應該重新啓動(或取消並創建一個新的)Timer onBufferUpdate?有了onBufferUpdate監聽器,我應該知道一些數據會回來,所以應該重置計時器。
我會檢查,現在的問題是,如果它只是坐在那裏一分鐘的OnError甚至從來沒有被解僱。 – 2013-03-18 16:49:55
這不是一篇文章,這是文檔,當然我讀過!這不是RTFM的情況!哈哈:-) – 2013-03-18 16:50:47
對於我來說,和安東尼完全一樣,超時需要很長時間才能打電話給錯誤監聽者。我不知道如何修復它。 – 2013-07-25 11:49:15