Android自带的播放视频有几种方法:


第一种方式是使用MediaPlayer 结合SurfaceView 来播放,通过MediaPlayer来控制视频的播放、暂停、进度等;

第二种方式是使用VideoView 来播放,这个类其实也是继承了SurfaceView 类,并且实现了MediaController.MediaPlayerController 这个用于控制媒体播放的接口,另外在VideoView上还有一个用于对媒体播放进行控制的面板,包括快进、快退、播放、暂停按钮以及一个进度条

第三种方式是利用第三方类库,例如:Vitamio官网


1.VideoView的使用方法


setVideoViewPath(String path); 设置播放视频的路径
setVideoURL(Uri uri); 设置视频的URI
start(); 开始播放;
seekTo(int msec); 定位;
pause(); 暂停播放;
stop(); 停止播放;
setMediaController(MediaController); 设置MediaController 对象;

媒体控制面版常用方法:MediaController:
hide(); 隐藏MediaController;
show(); 显示MediaController
show(int timeout); 设置MediaController显示的时间,以毫秒计算,如果设置为0则一直到调用hide()时隐藏;
实例:

FileCache fileCache = new FileCache(context);VideoView ad = (VideoView) findViewById(R.id.welcome_video);ad.setMediaController(new MediaController(context));ad.setVideoPath(fileCache.getCacheDir()+File.separator+"pad.mp4"); ad.start();

filecache 是自己工程的缓存引用,setMediaController设置播放控制条,可有可无。


2.SurfaceView 使用方法


SurfaceView它用于显示,SurfaceHolder是用于用来管理这个显示的SurfaceView对象的。

public SurfaceHolder getHolder () 得到SurfaceHolder对象用于管理SurfaceView

public abstract void addCallback (SurfaceHolder.Callback callback)添加一个Callback对象监听SurfaceView的变化
public abstract void setType (int type)设置SurfaceView的控制方式

实例:


surfaceView=(SurfaceView) this.findViewById(R.id.surfaceView);          //设置SurfaceView自己不管理的缓冲区      surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);             surfaceView.getHolder().addCallback(new Callback() {                  @Override          public void surfaceDestroyed(SurfaceHolder holder) {                }                @Override          public void surfaceCreated(SurfaceHolder holder) {              if (position>0) {                  try {                      //开始播放                          mediaPlayer.reset();                          mediaPlayer                          .setAudioStreamType(AudioManager.STREAM_MUSIC);                          //设置需要播放的视频                          mediaPlayer.setDataSource("/mnt/sdcard/movie.3gp");                          //把视频画面输出到SurfaceView                          mediaPlayer.setDisplay(surfaceView.getHolder());                          mediaPlayer.prepare();                          //播放                          mediaPlayer.start();                          } catch (Exception e) {                      // TODO: handle exception                  }              }          }                     @Override          public void surfaceChanged(SurfaceHolder holder, int format, int width,                  int height) {          }      });


3.Vitamio使用参照官方文档:https://www.vitamio.org/docs/


更多相关文章

  1. android添加文件打开方式以及参数传递
  2. android 动画使用方式
  3. 视频Android studio1.3.1从菜鸟到高手--第一季-IT蓝豹
  4. android videoview视频铺满屏幕
  5. Android Camera实现方式
  6. Android framework工作方式及原理
  7. android 定时任务的几种实现方式
  8. Android之Builder对话框的一些常用方式
  9. 视频播放器丢帧策略

随机推荐

  1. Android ListView例子
  2. android中的Bitmap用法小结
  3. Android应用程序支持大小不同的屏幕
  4. Android(安卓)中Handler引起的内存泄露
  5. Android点击两次返回键,退出应用程序
  6. Android中使用Animation实现控件的动画效
  7. 使用ddmlib实现android 性能监控
  8. android binder c++层 - 回调客户端服务
  9. Android中自定义Checkbox
  10. Android Developers:日历提供者