上一篇是播放音频的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 是否正在播放。