全栈工程师开发手册 (作者:栾鹏)
使用MediaPlayer播放视频,需要制作视频界面,渲染数据的surfaceView(屏幕缓冲区)、滚动条SeekBar和播放前准备。而videoview类封装了surface的创建以及media player中视频内容的分配和准备。所以使用起来更加方便,不过可定制程序也就不高了。
使用videoView播放本地和在线视频,在线视频是边加载边播放。
//使用videoview控件进行视频播放
private void configureVideoView() {
VideoView videoView = (VideoView)findViewById(R.id.activity1_video1);
//配置videoview并分配一个视频来源
videoView.setKeepScreenOn(true); //应用屏幕唤醒锁,播放时防止屏幕变暗。
//videoView.setVideoPath("/sdcard/test.mp4"); //分配一个本地资源
String videoUrl2 = "http://www.525heart.com/test.mp4";
Uri uri = Uri.parse( videoUrl2 );
videoView.setVideoURI(uri); //分配一个网络资源,加载需要一些时间,不过是边加载边播放
//添加一个mediacontroller媒体控制器
MediaController mediaController = new MediaController(this);
videoView.setMediaController(mediaController);
//播放完成回调函数
videoView.setOnCompletionListener( new MyPlayerOnCompletionListener());
//下面的操作你可以在videoview中通过控件来操作
videoView.seekTo(10); //跳转到多少毫秒
videoView.stopPlayback(); //停止返回
videoView.pause(); //暂停
videoView.start(); //开始
}
//视频播放完成的回调函数
class MyPlayerOnCompletionListener implements MediaPlayer.OnCompletionListener
{
@Override
public void onCompletion(MediaPlayer mp) {
Log.v("媒体播放", "视频播放完成");
}
}