?
Ce document utilise Manuel du site Web PHP chinois Libérer
VideoView
審核:cnmahj
版本:Android 3.1 r1
?
結(jié)構(gòu)
繼承關(guān)系
public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl
????????
java.lang.Object
???????? android.view.View
?????????????????? android.view.SurfaceView
??????????????????????????? android.widget.VideoView
??????????????????
類概述
(圖片轉(zhuǎn)載至這里)
用于播放視頻文件。 VideoView 類可以從不同的來源(例如資源文件或內(nèi)容提供器) 讀取圖像,計算和維護(hù)視頻的畫面尺寸以使其適用于任何布局管理器, 并提供一些諸如縮放、著色之類的顯示選項(xiàng)。
?
構(gòu)造函數(shù):
public VideoView (Context context)
創(chuàng)建一個默認(rèn)屬性的VideoView實(shí)例。
參數(shù)
context??? 視圖運(yùn)行的應(yīng)用程序上下文,通過它可以訪問當(dāng)前主題、資源等等。
?
public VideoView (Context context, AttributeSet attrs)
創(chuàng)建一個帶有attrs屬性的VideoView實(shí)例。
參數(shù)
context ? 視圖運(yùn)行的應(yīng)用程序上下文,通過它可以訪問當(dāng)前主題、資源等等。
attrs ?????? 用于視圖的 XML 標(biāo)簽屬性集合。
?
public VideoView (Context context, AttributeSet attrs, int defStyle)
創(chuàng)建一個帶有attrs屬性,并且指定其默認(rèn)樣式的VideoView實(shí)例。
參數(shù)
context ? 視圖運(yùn)行的應(yīng)用程序上下文,通過它可以訪問當(dāng)前主題、資源等等。
attrs ?????? 用于視圖的 XML 標(biāo)簽屬性集合。
defStyle 應(yīng)用到視圖的默認(rèn)風(fēng)格。如果為 0 則不應(yīng)用(包括當(dāng)前主題中的)風(fēng)格。 該值可以是當(dāng)前主題中的屬性資源,或者是明確的風(fēng)格資源 ID。
?
公共方法
public boolean canPause ()
(譯者注:判斷是否能夠暫停播放視頻)
?
public boolean canSeekBackward ()
(譯者注:判斷是否能夠倒退)
?
public boolean canSeekForward ()
(譯者注:判斷是否能夠快進(jìn))
?
public int getBufferPercentage ()
(譯者注:獲得緩沖區(qū)的百分比)
?
public int getCurrentPosition ()
(譯者注:獲得當(dāng)前的位置)
?
public int getDuration ()
(譯者注:獲得所播放視頻的總時間)
?
public boolean isPlaying ()
(譯者注:判斷是否正在播放視頻)
?
public boolean onKeyDown (int keyCode, KeyEvent event)
KeyEvent.Callback.onKeyMultiple() 的默認(rèn)實(shí)現(xiàn)。如果視圖可用并可按, 當(dāng)按下 KEYCODE_DPAD_CENTER 或 KEYCODE_ENTER 時執(zhí)行視圖的按下事件。
參數(shù)
keyCode?? 表示按下的鍵的、在 KEYCODE_ENTER 中定義的鍵盤代碼
event??????? KeyEvent 對象,定義了按鈕動作
返回值
如果處理了事件,返回真。如果允許下一個事件接受器處理該事件,可以返回假
?
public boolean onTouchEvent (MotionEvent ev)
實(shí)現(xiàn)該方法來處理觸屏事件。
參數(shù)
event??????? 觸屏事件
返回值
如果事件已經(jīng)處理返回True,否則返回false。
?
public boolean onTrackballEvent (MotionEvent ev)
實(shí)現(xiàn)這個方法去處理軌跡球的動作事件,軌跡球相對于上次事件移動的位置能用MotionEvent.getX() 和 MotionEvent.getY()函數(shù)取回。對應(yīng)用戶按下一次方向鍵, 他們通常作為一次移動處理(為了表現(xiàn)來自軌跡球的更小粒度的移動信息,他們返回小數(shù))。
參數(shù)
ev???? 動作的事件
?
public void pause ()
(譯者注:使得播放暫停)
?
public int resolveAdjustedSize (int desiredSize, int measureSpec)
(譯者注:取得調(diào)整后的尺寸。如果measureSpec對象傳入的模式是UNSPECIFIED那么返回的是desiredSize。如果measureSpec對象傳入的模式是AT_MOST,返回的將是desiredSize和measureSpec對象的尺寸兩者中最小的那個。如果measureSpec對象傳入的模式是EXACTLY,那么返回的是measureSpec對象中的尺寸大小值。
關(guān)于MeasureSpec類的額外說明:MeasureSpec是一個android.view.View的內(nèi)部類。它封裝了從父類傳送到子類的布局要求信息。每個MeasureSpec對象描述了控件的高度或者寬度。MeasureSpec對象是由尺寸和模式組成的,有3個模式:UNSPECIFIED、EXACTLY、AT_MOST,這個對象由MeasureSpec.makeMeasureSpec()函數(shù)創(chuàng)建。)
?
public void resume ()
(譯者注:恢復(fù)掛起的播放器)
?
public void seekTo (int msec)
(譯者注:設(shè)置播放位置)
?
public void setMediaController (MediaController controller)
(譯者注:設(shè)置媒體控制器)
????????
public void setOnCompletionListener (MediaPlayer.OnCompletionListener l)
注冊在媒體文件播放完畢時調(diào)用的回調(diào)函數(shù)。
參數(shù)
l??????? 要執(zhí)行的回調(diào)函數(shù)
?
public void setOnErrorListener (MediaPlayer.OnErrorListener l)
注冊在設(shè)置或播放過程中發(fā)生錯誤時調(diào)用的回調(diào)函數(shù)。如果未指定回調(diào)函數(shù), 或回調(diào)函數(shù)返回假,VideoView 會通知用戶發(fā)生了錯誤。
參數(shù)
l??????? 要執(zhí)行的回調(diào)函數(shù)
?
public void setOnPreparedListener (MediaPlayer.OnPreparedListener l)
注冊在媒體文件加載完畢,可以播放時調(diào)用的回調(diào)函數(shù)。
參數(shù)
l??????? 要執(zhí)行的回調(diào)函數(shù)
????????
public void setVideoPath (String path)
(譯者注:設(shè)置視頻文件的路徑名)
?
public void setVideoURI (Uri uri)
(譯者注:設(shè)置視頻文件的統(tǒng)一資源標(biāo)識符)
?
public void start ()
(譯者注:開始播放視頻文件)
?
public void stopPlayback ()
(譯者注:停止回放視頻文件)
?
public void suspend ()
(譯者注:掛起視頻文件的播放)
?
補(bǔ)充
???????? 文章精選
?????????????????? VideoView ? { Android學(xué)習(xí)指南}
?????????????????? Android利用VideoView實(shí)現(xiàn)VideoPlayer
?????????????????? 編寫簡單自定義VideoView
?????????????????? Android VideoView如何播放RTSP的流
?????????????????? android利用VideoView實(shí)現(xiàn)視頻全屏播放
?