上一篇是播放音頻的MediaPalyer,這一篇則是播放視頻的VideoView,其實它兩的用法,基本上是一樣。
1、在佈局文件中,寫一個VideoView的控件。
<VideoView android:id="@+id/mVideoView" android:layout_width="match_parent" android:layout_height="400dp"/>2、在代碼中使用findViewById()找到它。
mVideoView = (VideoView) findViewById (R.id.mVideoView);3、給VideoView設置資源。
方式1:
mVideoView.setVideoURI (Uri.parse ("android.resource://"+getPackageName ()+"/"+R.raw.video));方式2:
mVideoView.setVideoPath (Environment.getExternalStorageDirectory ()+"/download/video.mp4");4、播放視頻。
if (!mVideoView.isPlaying ()) { mVideoView.start (); }5、暫停播放。
if(mVideoView.isPlaying ()){ mVideoView.pause (); }6、停止播放。
if(mVideoView!=null && mVideoView.isPlaying ()){ mVideoView.stopPlayback (); }7、重新播放。
if(mVideoView!=null){ mVideoView.resume (); }8、釋放資源。
if (mVideoView != null) { mVideoView.suspend (); }注意:在佈局文件中,我設置VideoView的寬度是match_parent,可播放時發現,VideoView的寬度並沒有充滿父窗體,在網上找了資料說是要,重寫VideoView的onMeasure()方法。
@Override protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) { int width = getDefaultSize (0, widthMeasureSpec); int height = getDefaultSize (0, heightMeasureSpec); setMeasuredDimension (width,height); }其它幾個重要的方法:
getCurrentPosition() 獲取當前視頻播放位置。
getPosition() 獲取載入的視頻文件時長。
isPlaying 是否正在播放。