2012-08-17 87 views
1

我一起使用MediaControllerMediaPlayer,在Android上創建一個簡單的音頻播放器,取自我在此網站上找到的示例。Android MediaController seekbar不刷新

但是,經過大量搜索後,我無法找到解決問題的方法:進度/搜索欄在音樂播放時不刷新。它只是在按下MediaController(播放/暫停,轉發等)時自動更新。

任何容易解決這個,我沒有得到?

注意:我的MediaControllerXML中聲明,而我的MediaController.MediaPlayerControl方法只是使用MediaPlayer類。

+0

應該自動刷新(通過的MediaController/MediaPlayer的API)的搜索條或者是你應該使用代碼更新它? – 2012-08-17 19:00:09

+0

嗯,我希望它自動刷新,因爲: mediaController.setMediaPlayer(mediaPlayer)完成。不幸的是,只有在任何MediaController的按鈕被按下時,它纔會更新(沒有我的代碼)。 – PedroN 2012-08-17 22:02:47

回答

0

Mediaplayer提供了一個方法getCurrentPosition()你可以把它放在一個線程中來不斷更新進度條。

public int getCurrentPositionInt(){ 
     if (player != null) 
      return player.getCurrentPosition(); 
     else 
      return 0; 
    } 

創建ThreadCountDownTimer不斷更新搜索條:

seekBar.setMax((getCurrentPositionInt()/1000)); 

OR

MediaController.MediaPlayerControl mp; 
mp.seekTo((getCurrentPositionInt()/1000)) 
+0

謝謝。很遺憾知道它不會從附加的MediaPlayer更新。還有一件事:我如何從我的MediaController獲取SeekBar? – PedroN 2012-08-17 22:00:34

+0

我還沒有處理過'MediaController',但文檔說它負責將控件與MediaPlayer的狀態同步。 我想你可以使用MediaController.MediaPlayerControl.seekTo((getCurrentPositionInt()/ 1000))方法來做到這一點。而不是seekBar。 – Sayyam 2012-08-17 22:15:27

+0

是的,它確實同步,但奇怪的是,只有當按下某些東西時纔會刷新。並seekTo將無法正常工作,已經嘗試它:( – PedroN 2012-08-17 22:40:47