編輯:Android開發實例
前言
本章內容是android.widget.VideoView,版本為Android 3.1 r1,翻譯來自"唐明",由"cnmahj"審核,再次感謝"唐明"!
VideoView
譯者署名:唐明
審核:cnmahj
版本:Android 3.1 r1
結構
繼承關系
public class VideoView extends SurfaceView
implements MediaController.MediaPlayerControl
java.lang.Object
android.view.View
android.view.SurfaceView
android.widget.VideoView
類概述
(圖片轉載至這裡)
用於播放視頻文件。 VideoView 類可以從不同的來源(例如資源文件或內容提供器) 讀取圖像,計算和維護視頻的畫面尺寸以使其適用於任何布局管理器, 並提供一些諸如縮放、著色之類的顯示選項。
構造函數:
public VideoView (Context context)
創建一個默認屬性的VideoView實例。
參數
context 視圖運行的應用程序上下文,通過它可以訪問當前主題、資源等等。
public VideoView (Context context, AttributeSet attrs)
創建一個帶有attrs屬性的VideoView實例。
參數
context 視圖運行的應用程序上下文,通過它可以訪問當前主題、資源等等。
attrs 用於視圖的 XML 標簽屬性集合。
public VideoView (Context context, AttributeSet attrs, int defStyle)
創建一個帶有attrs屬性,並且指定其默認樣式的VideoView實例。
參數
context 視圖運行的應用程序上下文,通過它可以訪問當前主題、資源等等。
attrs 用於視圖的 XML 標簽屬性集合。
defStyle 應用到視圖的默認風格。如果為 0 則不應用(包括當前主題中的)風格。 該值可以是當前主題中的屬性資源,或者是明確的風格資源 ID。
公共方法
public boolean canPause ()
(譯者注:判斷是否能夠暫停播放視頻)
public boolean canSeekBackward ()
(譯者注:判斷是否能夠倒退)
public boolean canSeekForward ()
(譯者注:判斷是否能夠快進)
public int getBufferPercentage ()
(譯者注:獲得緩沖區的百分比)
public int getCurrentPosition ()
(譯者注:獲得當前的位置)
public int getDuration ()
(譯者注:獲得所播放視頻的總時間)
public boolean isPlaying ()
(譯者注:判斷是否正在播放視頻)
public boolean onKeyDown (int keyCode, KeyEvent event)
KeyEvent.Callback.onKeyMultiple() 的默認實現。如果視圖可用並可按, 當按下 KEYCODE_DPAD_CENTER 或 KEYCODE_ENTER 時執行視圖的按下事件。
參數
keyCode 表示按下的鍵的、在 KEYCODE_ENTER 中定義的鍵盤代碼
event KeyEvent 對象,定義了按鈕動作
返回值
如果處理了事件,返回真。如果允許下一個事件接受器處理該事件,可以返回假
public boolean onTouchEvent (MotionEvent ev)
實現該方法來處理觸屏事件。
參數
event 觸屏事件
返回值
如果事件已經處理返回True,否則返回false。
public boolean onTrackballEvent (MotionEvent ev)
實現這個方法去處理軌跡球的動作事件,軌跡球相對於上次事件移動的位置能用MotionEvent.getX() 和 MotionEvent.getY()函數取回。對應用戶按下一次方向鍵, 他們通常作為一次移動處理(為了表現來自軌跡球的更小粒度的移動信息,他們返回小數)。
參數
ev 動作的事件
public void pause ()
(譯者注:使得播放暫停)
public int resolveAdjustedSize (int desiredSize, int measureSpec)
(譯者注:取得調整後的尺寸。如果measureSpec對象傳入的模式是UNSPECIFIED那麼返回的是desiredSize。如果measureSpec對象傳入的模式是AT_MOST,返回的將是desiredSize和measureSpec對象的尺寸兩者中最小的那個。如果measureSpec對象傳入的模式是EXACTLY,那麼返回的是measureSpec對象中的尺寸大小值。
關於MeasureSpec類的額外說明:MeasureSpec是一個android.view.View的內部類。它封裝了從父類傳送到子類的布局要求信息。每個MeasureSpec對象描述了控件的高度或者寬度。MeasureSpec對象是由尺寸和模式組成的,有3個模式:UNSPECIFIED、EXACTLY、AT_MOST,這個對象由MeasureSpec.makeMeasureSpec()函數創建。)
public void resume ()
(譯者注:恢復掛起的播放器)
public void seekTo (int msec)
(譯者注:設置播放位置)
public void setMediaController (MediaController controller)
(譯者注:設置媒體控制器)
public void setOnCompletionListener (MediaPlayer.OnCompletionListener l)
注冊在媒體文件播放完畢時調用的回調函數。
參數
l 要執行的回調函數
public void setOnErrorListener (MediaPlayer.OnErrorListener l)
注冊在設置或播放過程中發生錯誤時調用的回調函數。如果未指定回調函數, 或回調函數返回假,VideoView 會通知用戶發生了錯誤。
參數
l 要執行的回調函數
public void setOnPreparedListener (MediaPlayer.OnPreparedListener l)
注冊在媒體文件加載完畢,可以播放時調用的回調函數。
參數
l 要執行的回調函數
public void setVideoPath (String path)
(譯者注:設置視頻文件的路徑名)
public void setVideoURI (Uri uri)
(譯者注:設置視頻文件的統一資源標識符)
public void start ()
(譯者注:開始播放視頻文件)
public void stopPlayback ()
(譯者注:停止回放視頻文件)
public void suspend ()
(譯者注:掛起視頻文件的播放)
補充
文章精選
VideoView « { Android學習指南}
Android利用VideoView實現VideoPlayer
編寫簡單自定義VideoView
Android VideoView如何播放RTSP的流
android利用VideoView實現視頻全屏播放
Android Service是分為兩種: 本地服務(Local Service): 同一個apk內被調用 遠程服務(Remote Service):被另一個
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
Android提供了許多方法來控制播放的音頻/視頻文件和流。其中該方法是通過一類稱為MediaPlayer。Android是提供MediaPlayer類訪問內置的媒體播放
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我