天天看點

Android 中文API (94) —— MediaController

一、結構

public class MediaController extends FrameLayout  

java.lang.Object

android.view.View

         android.view.ViewGroup

                   android.widget.FrameLayout

                            android.widget.MediaController

二、類概述

    

  一個包含媒體播放器(MediaPlayer)控件的視圖。包含了一些典型的按鈕,像"播放(Play)/暫停(Pause)", "倒帶(Rewind)", "快進(Fast Forward)"與進度滑動器(progress slider)。它管理媒體播放器(MediaController)的狀态以保持控件的同步。

  通過程式設計來執行個體化使用這個類。這個媒體控制器将建立一個具有預設設定的控件,并把它們放到一個視窗裡漂浮在你的應用程式上。具體來說,這些控件會漂浮在通過setAnchorView()指定的視圖上。如果這個視窗空閑3秒那麼它将消失,直到使用者觸摸這個視圖的時候重制。

  當媒體控制器是在一個XML布局資源檔案中建立的時候,像show()和 hide()這些函數是無效的。媒體播放器将根據這些規則去顯示和隐藏:

      * 在調用setPrevNextListeners()函數之前,"previous"和 "next"按鈕都是隐藏的。

      * 如果setPrevNextListeners()函數被調用但傳入的監聽器參數是null,那麼"previous"和 "next"按鈕是可見的但是處于禁用狀态。

      *"rewind" 和 "fastforward"按鈕是顯示的,如果不需要可以使用構造函數MediaController(Context, boolean)将boolean設定為false。

三、公共方法

  public boolean dispatchKeyEvent (KeyEvent event)

  在焦點路徑上分發按鈕事件到下一個視圖。該路徑從視圖樹的頂端周遊到目前獲得焦點的視圖。如果目前視圖已獲得焦點,就分發給自身。否則,就分發到下一個節點的焦點路徑上。這個方法也可以激發任何一個按鍵消息監聽器。

  參數

  event       被分發的事件

  傳回值

  如果這個事件被處理了傳回true,否則傳回false

  public void hide ()

  從螢幕中移除控制器。

  public boolean isShowing ()

  (譯者注:判斷媒體控制器是否處于可見狀态。)

  public void onFinishInflate ()

  XML檔案加載視圖完成時調用。這個函數在加載的最後階段被調用,所有的子視圖已經被添加。

  即使子類重寫了onFinishInflate方法,也應該始終確定調用父類方法,以便我們調用。

  public boolean onTouchEvent (MotionEvent event)

  實作這個方法來處理觸摸螢幕引發的事件。

  event       動作事件

  如果這個事件被處理了傳回true,否則傳回false。

  public boolean onTrackballEvent (MotionEvent ev)

ev    動作事件

               如果這個事件被處理了傳回true,否則傳回false。

  public void setAnchorView (View view)

  設定這個控制器綁定(anchor/錨)到一個視圖上。例如可以是一個VideoView對象,或者是你的activity的主視圖。

  view  将視圖來綁定控制器時可見 

  public void setEnabled (boolean enabled)

  設定視圖對象的有效狀态。這也可以改變子類的有效狀态。

  enabled 如果要讓這個視圖對象可用就設定為true,否則設定為false。 

  public void setMediaPlayer (MediaController.MediaPlayerControl player)

  (譯者注:把這個媒體控制器設定到VideoView對象上。)

  public void setPrevNextListeners (View.OnClickListener next, View.OnClickListener prev)

  (譯者注:設定"previous"和 "next"按鈕的監聽器函數。)

  public void show (int timeout)

  在螢幕上顯示這個控制器。它将在閑置’逾時 (timeout)’毫秒到達後自動消失。

  timeout 這個參數以毫秒為機關。如果設定為0将一直顯示到調用hide()函數為止。 

  public void show ()

在螢幕上顯示這個控制器。它将在3秒以後自動消失。

四、補充

  文章精選

繼續閱讀