Android开发06_VideoView、SurfaceView两种视频播放器

一、前言

Android中视频播放的方式有两种,一种是使用系统封装好的VideoView,使用起来比较方便,系统API把所有播放的内容都封在了这个类中,唯一不足的是无法自定义,比如你想修改播放的进度条就是一件十分麻烦的事情。

所以Android还提供了另一种视频播放的类SurfaceView,此类结合MediaPlayer使用起来十分得心应手,自定义功能强大到你想做什么都可以在此去实现,所以编者认为市场上流行的视频播放基本都是通过SurfaceView来实现的。


二、VideoView使用步骤

1、在布局中使用并初始化VideoView

// # 设置本地资源
//vv.setVideoPath(Environment.getRootDirectory() + "/dream.mp4");
// # 设置网络资源
vv.setVideoURI(Uri.parse("http://tb-video.bdstatic.com/tieba-smallvideo/1116878_e3a8d2b10bd099f523cbc9e87a64f53a.mp4"));

2、初始化媒体控制器MediaController

// # 2 初始化控制器
MediaController controller = new MediaController(this);

3、用VideoView绑定媒体控制器

// 绑定VideoView和控制器
vv.setMediaController(controller);
controller.setMediaPlayer(vv);

4、播放视频

// 播放视频
vv.start();

说明:VideoView使用起来相对简单,只需要绑定媒体控制器即可实现较为美观的视频播放界面,但是如果我们想自定义视频播放界面,VideoView就完成不了我们的期望了。


三、SurfaceView+MediaPlayer使用步骤

1、在布局中使用并初始化SurfaceView


2、通过SurfaceView初始化持有者SurfaceHolder,SurfaceHolder主要负责控制SurfaceView

// 初始化持有者
surfaceHolder = sv.getHolder();


3、给SurfaceHolder添加Callback监听,此监听会重写三个抽象方法:surfaceCreated(创建时调用)、surfaceChanged(发生改变时调用)、surfaceDestroyed(销毁时调用)

// 设置监听
surfaceHolder.addCallback(this);

4、给SurfaceHolder设置类型

// 设置类型
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//类型(不可删除)

5、在步骤3给SurfaceHolder添加的监听方法中初始化并使用MediaPlayer(MediaPlayer使用步骤:http://blog.csdn.net/baidu_17619859/article/details/53815949)


6、给MediaPalyer设置显示屏:此方法需要在MediaPalyer对象准备完成后使用

mediaPlayer.setDisplay(surfaceHolder);


四、附属

1、设置横屏
//设置横屏播放
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值