我有一個服務,創建,播放和處理媒體播放器(只是音頻),但我有一個seekbar在主要活動,我想,自然,顯示音頻文件的進度,並允許用戶尋求各種職位。Android媒體播放器seekbar
我有一段時間搞清楚了:什麼是將UI中的seekbar連接到服務中的mediaplayer的最佳或正確的方式?
我有一個服務,創建,播放和處理媒體播放器(只是音頻),但我有一個seekbar在主要活動,我想,自然,顯示音頻文件的進度,並允許用戶尋求各種職位。Android媒體播放器seekbar
我有一段時間搞清楚了:什麼是將UI中的seekbar連接到服務中的mediaplayer的最佳或正確的方式?
試試看MediaController看看它是否對您有用。
這裏是我會怎麼做:
綁定到服務,播放音頻。服務器在onBind
中返回的接口應具有getCurrentPos()
和getDuration()
函數。
在你活動的onCreate
綁定到服務
onResume
使用Handler
的postDelayed
功能開始更新。postDelayed
函數發佈。postDelayed
運行boundService.getCurrentPos()
和boundService.getDuration()
的runnable中,並適當地更新搜索欄。總之,您應該使用服務綁定和處理程序進行重複更新。
Handler
定期更新閱讀了這個問題:Repeat a task with a time delay?您也可以嘗試Otto from Square
你只需要創建一個類SeekBarSyncEvent.java
,把你在那裏需要的參數:
然後你就可以在從您的服務onPrepared()
方法您SeekBarSyncEvent
類發佈從總線事件初始化從活動搜索條。
最後在您的活動中創建@Subscribe
方法,以便調用您的seekBarUpdate()
方法。
這應該很好,很好,易於維護。