?
Dokumen ini menggunakan Manual laman web PHP Cina Lepaskan
MediaController
版本:Android 2.3 r1
?
結(jié)構(gòu)
繼承關(guān)系
public class MediaController extends FrameLayout
????????
java.lang.Object
android.view.View
???????? android.view.ViewGroup
?????????????????? android.widget.FrameLayout
??????????????????????????? android.widget.MediaController
?
類概述
一個(gè)包含媒體播放器(MediaPlayer)控件的視圖。包含了一些典型的按鈕,像"播放(Play)/暫停(Pause)", "倒帶(Rewind)", "快進(jìn)(Fast Forward)"與進(jìn)度滑動(dòng)器(progress slider)。它管理媒體播放器(MediaController)的狀態(tài)以保持控件的同步。
通過(guò)編程來(lái)實(shí)例化使用這個(gè)類。這個(gè)媒體控制器將創(chuàng)建一個(gè)具有默認(rèn)設(shè)置的控件,并把它們放到一個(gè)窗口里漂浮在你的應(yīng)用程序上。具體來(lái)說(shuō),這些控件會(huì)漂浮在通過(guò)setAnchorView()指定的視圖上。如果這個(gè)窗口空閑3秒那么它將消失,直到用戶觸摸這個(gè)視圖的時(shí)候重現(xiàn)。
當(dāng)媒體控制器是在一個(gè)XML布局資源文件中創(chuàng)建的時(shí)候,像show()和 hide()這些函數(shù)是無(wú)效的。媒體播放器將根據(jù)這些規(guī)則去顯示和隱藏:
?
公共方法
public boolean dispatchKeyEvent (KeyEvent event)
在焦點(diǎn)路徑上分發(fā)按鈕事件到下一個(gè)視圖。該路徑從視圖樹(shù)的頂端遍歷到當(dāng)前獲得焦點(diǎn)的視圖。如果當(dāng)前視圖已獲得焦點(diǎn),就分發(fā)給自身。否則,就分發(fā)到下一個(gè)節(jié)點(diǎn)的焦點(diǎn)路徑上。這個(gè)方法也可以激發(fā)任何一個(gè)按鍵消息監(jiān)聽(tīng)器。
參數(shù)
event ????? 被分發(fā)的事件
返回值
如果這個(gè)事件被處理了返回true,否則返回false。
?
public void hide ()
從屏幕中移除控制器。
?
public boolean isShowing ()
(譯者注:判斷媒體控制器是否處于可見(jiàn)狀態(tài)。)
?
public void onFinishInflate ()
XML文件加載視圖完成時(shí)調(diào)用。這個(gè)函數(shù)在加載的最后階段被調(diào)用,所有的子視圖已經(jīng)被添加。
即使子類重寫(xiě)了onFinishInflate方法,也應(yīng)該始終確保調(diào)用父類方法,以便我們調(diào)用。
?
public boolean onTouchEvent (MotionEvent event)
實(shí)現(xiàn)這個(gè)方法來(lái)處理觸摸屏幕引發(fā)的事件。
參數(shù)
event ????? 動(dòng)作事件
返回值
如果這個(gè)事件被處理了返回true,否則返回false。
?
public boolean onTrackballEvent (MotionEvent ev)
實(shí)現(xiàn)這個(gè)方法處理軌跡球的動(dòng)作事件,軌跡球相對(duì)運(yùn)動(dòng)的最后一個(gè)事件能用MotionEvent.getX()
和 MotionEvent.getY()
函數(shù)獲取。這些都是標(biāo)準(zhǔn)化的,用1表示用戶按下一個(gè)DPAD按鍵。(因此他們將經(jīng)常使用小數(shù)值表示,為軌跡球提供更多的的細(xì)微運(yùn)動(dòng)信息) (譯者注:DPAD按鍵事件:
KeyEvent.KEYCODE_DPAD_CENTER(居中)、KeyEvent.KEYCODE_DPAD_DOWN(向下)、KeyEvent.KEYCODE_DPAD_LEFT(向左)、KeyEvent.KEYCODE_DPAD_RIGHT(向右)、KeyEvent.KEYCODE_DPAD_UP(向上)作比較。分別表示居中、下移、左移、右移、上移的操作。
相關(guān)鏈接:onTrackBallEvent方法簡(jiǎn)介
)
參數(shù)
ev ?? 動(dòng)作事件
返回值
??? ???????? 如果這個(gè)事件被處理了返回true,否則返回false。
?
?
public void setAnchorView (View view)
設(shè)置這個(gè)控制器綁定(anchor/錨)到一個(gè)視圖上。例如可以是一個(gè)VideoView對(duì)象,或者是你的activity的主視圖。
參數(shù)
view ? 將視圖來(lái)綁定控制器時(shí)可見(jiàn)
?
public void setEnabled (boolean enabled)
設(shè)置視圖對(duì)象的有效狀態(tài)。這也可以改變子類的有效狀態(tài)。
參數(shù)
enabled 如果要讓這個(gè)視圖對(duì)象可用就設(shè)置為true,否則設(shè)置為false。
?
public void setMediaPlayer (MediaController.MediaPlayerControl player)
(譯者注:把這個(gè)媒體控制器設(shè)置到VideoView對(duì)象上。)
?
public void setPrevNextListeners (View.OnClickListener next, View.OnClickListener prev)
(譯者注:設(shè)置"previous"和 "next"按鈕的監(jiān)聽(tīng)器函數(shù)。)
?
public void show (int timeout)
在屏幕上顯示這個(gè)控制器。它將在閑置’超時(shí) (timeout)’毫秒到達(dá)后自動(dòng)消失。
參數(shù)
timeout 這個(gè)參數(shù)以毫秒為單位。如果設(shè)置為0將一直顯示到調(diào)用hide()函數(shù)為止。
?
public void show ()
在屏幕上顯示這個(gè)控制器。它將在3秒以后自動(dòng)消失。
?
補(bǔ)充
文章精選
[推薦][Android學(xué)習(xí)指南]Android多媒體(Media)
調(diào)用android api播放視頻
Customize android VideoView (ii)
?