视频播放步骤
:::::
使用
new
MediaPlayer
() 获取媒体播放类
1、创建MediaPlyer的对象,并让他加载指定的视频文件。
new
2、在界面布局文件中定义SurfaceView组件,或在程序中创建SurfaceView组件。并为SurfaceView的SurfaceHolder添加Callback监听器(
surfaceHolder
.
addCallback
(
this
)
;
)。
3、调用MediaPlayer对象的setDisplay(SurfaceHolder sh)将所播放的视频图像输出到指定的SurfaceView组件(
sufaceHolder
回调方法中实现)
4、调用MediaPlayer对象的start()、stop()、和pause()方法控制视频的播放
//获取对象 mediaPlayer = new MediaPlayer(); //通过getHolder()方法得到 SurfaceHolder用与绘制 mediaPlayer对象需要它来进行绘制 surFaceHolder = surFaceView.getHolder(); surFaceHolder.addCallback(this);//省略... Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + getPackageName() + "/" + R.raw.dream); try { //视频播放完成方法 mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { mp.start(); } }); //视频播放准备监听 mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); //获取播放总时间 allTime = mediaPlayer.getDuration(); handler.sendEmptyMessageDelayed(1, 1000); } }); //设置资源 mediaPlayer.setDataSource(getApplicationContext(), uri); mediaPlayer.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { //下载百分比 } }); mediaPlayer.setOnInfoListener(new MediaPlayer.OnInfoListener() { @Override //监听播放状态 what public boolean onInfo(MediaPlayer mp, int what, int extra) { if (what == MediaPlayer.MEDIA_INFO_BUFFERING_START){ //缓冲开始 }else if (what == MediaPlayer.MEDIA_INFO_BUFFERING_END){//缓冲结束 }//... return false; } }); mediaPlayer.setScreenOnWhilePlaying(true);//屏幕常量 mediaPlayer.prepare();