前言
MediaController與VideoView配套使用,基本能實現播放界面的主要功能,大家可用參考 OPlayer的代碼實現。
聲明
歡迎轉載,但請保留文章原始出處:)
Vitamio:http://www.vitamio.org
農民伯伯: http://www.cnblogs.com/over140/
正文
MediaController
整理:農民伯伯
類概述
public class MediaController extends FrameLayout
一個包含媒體播放器(MediaPlayer)的媒體控制條。通常包括“播放/暫停”和SeekBar。它管理MediaPlayer的狀態以保持控件的同步。
使用這個類的方法:
a). 通過編程來實例化這個類。
這個媒體控制器將創建一個具有默認設置的控件,並把它們放到一個窗口里漂浮在你的應用程序上。具體來說,這些控件會漂浮在通過setAnchorView()指定的視圖上。如果這個窗口空閑3秒那么它將消失,直到用戶觸摸這個視圖的時候重現。要自定義MediaController的風格、布局和控件,你可以擴展MediaController覆蓋makeControllerView方法。
b). 通過xml布局創建。
MediaController是一個FrameLayout,你可以把它放到你的布局中並通過findViewById來獲得。
備注:如果你想自定義MediaController,SeekBar的id必須是“mediacontroller_progress”、暫停/播放必須是“mediacontroller_pause”、當前時間必須是“mediacontroller_time_current”,總時間必須是“mediacontroller_time_total”、文件名稱必須是“mediacontroller_file_name”。並且還必須有pause_button和play_button資源(drawable)。
當MediaController通過xml 布局創建時,像show()、hide()這些函數是無效的。
公共方法
public void onFinishInflate()
從XML加載完所有子視圖后調用。初始化控制視圖(調用initControllerView方法,設置事件、綁定控件和設置默認值)。
public void setAnchorView(View view)
設置MediaController綁定到一個視圖上。例如可以是一個VideoView對象,或者是你的activity的主視圖。
參數
view 可見時綁定的視圖
public void setMediaPlayer(MediaPlayerControl player)
設置媒體播放器。並更新播放/暫停按鈕狀態。
public void setInstantSeeking(boolean seekWhenDragging)
設置用戶拖拽SeekBar時畫面是否跟着變化。(VPlayer默認完成操作后再更新畫面)
public void show()
顯示MediaController。默認顯示3秒后自動隱藏。
public void show(int timeout)
顯示MediaController。在timeout毫秒后自動隱藏。
參數
timeout 超時時間,單位毫秒。為0時控制條的hide()將被調用。
public void setFileName(String name)
設置視頻文件名稱。
public void setInfoView(OutlineTextView v)
設置保存MediaController的操作信息。例如進度改變時更新v。
public void setAnimationStyle(int animationStyle)
更改MediaController的動畫風格。
如果MediaController正在顯示,調用此方法將在下一次顯示時生效。
參數
animationStyle 在MediaController顯示或隱藏時使用的動畫風格。設置-1為默認風格,0沒有動畫,或設置一個明確的動畫資源。
public boolean isShowing()
獲取MediaController是否已經顯示。
public void hide()
隱藏MediaController。
public void setOnShownListener(OnShownListener l)
注冊一個回調函數,在MediaController顯示后被調用。
public void setOnHiddenListener(OnHiddenListener l)
注冊一個回調函數,在MediaController隱藏后被調用。
public boolean onTouchEvent(MotionEvent event)
調用show()並返回true。
public boolean onTrackballEvent(MotionEvent ev)
調用show()並返回false。
public void setEnabled(boolean enabled)
設置MediaController的可用狀態。包括進度條和播放/暫停按鈕。
受保護方法
protected View makeControllerView()
創建控制播放的布局視圖。子類可重寫此方法創建自定義視圖。
