Android的videoView和mediaController
2016-04-17 20:28
141 查看
这几天在做视频播放器一直在研究videoview。
videoview是和video连用的。2个组件分别都提供一个方法关联另一方:
mediaController-setAnchorView(videoview),videoview-setMediaController(mediaController)。
我习惯在一个布局文件中设置好videoview的位置之后,在activity的onCreate()中将mediaController
动态初始化并关联到已经设置好的videoview上。
但是这里的说明下在布局中设置videoview的时候最好给videoview外面单独套一个的容器。
当然这个外层容器的高度要设定为wrap_content。这样就会把视频播放器和控制器很好的组合在一起。
这里我用的是线性布局LinearLayout因为我不想控制器把视频给遮盖住了。
?
实现的效果图如图:
用的是模拟器。所以视频没有播放出来成了黑色的。
?
如果videoview的外层容器的高度是match_parent或者fillparent的话。
视频控制器会和视频播放器分离如图:灰色为分离的部分。
PS: 不过其实你也可以先在布局文件中将mediaController设置好,然后在代码中初始话videoview然后将videoview添加到mediacontroller中去,因为mediaController是继承frameLayout的本身就是一个帧式布局容器:
?
?
从官方源码中可以看出,video会强制撑满全屏mediacontroller.
mediaController主要实现对videoview的播放控制,但是翻开mediacontroller的源码才发现。
mediaController能实现的功能太少了。其实这些都可以忍受,唯一让人不能忍受的的mediaController
暴露的可以让继承的类覆盖的方法太少了。
而且提供的监听器只有上一首和下一首。无法监听快进和后退。但是mediaController的快进是固定的15秒快进和固定的5秒后退时间。
?
?
很明显我们可以看到,mediaController的设计时间早完全是针对那些有键盘的手机,现在的手机那里会有什么播放和暂停键。
videoview是和video连用的。2个组件分别都提供一个方法关联另一方:
mediaController-setAnchorView(videoview),videoview-setMediaController(mediaController)。
我习惯在一个布局文件中设置好videoview的位置之后,在activity的onCreate()中将mediaController
动态初始化并关联到已经设置好的videoview上。
但是这里的说明下在布局中设置videoview的时候最好给videoview外面单独套一个的容器。
当然这个外层容器的高度要设定为wrap_content。这样就会把视频播放器和控制器很好的组合在一起。
这里我用的是线性布局LinearLayout因为我不想控制器把视频给遮盖住了。
?
用的是模拟器。所以视频没有播放出来成了黑色的。
?
视频控制器会和视频播放器分离如图:灰色为分离的部分。
PS: 不过其实你也可以先在布局文件中将mediaController设置好,然后在代码中初始话videoview然后将videoview添加到mediacontroller中去,因为mediaController是继承frameLayout的本身就是一个帧式布局容器:
?
mediaController主要实现对videoview的播放控制,但是翻开mediacontroller的源码才发现。
mediaController能实现的功能太少了。其实这些都可以忍受,唯一让人不能忍受的的mediaController
暴露的可以让继承的类覆盖的方法太少了。
而且提供的监听器只有上一首和下一首。无法监听快进和后退。但是mediaController的快进是固定的15秒快进和固定的5秒后退时间。
?
相关文章推荐
- Android中Context详解 ---- 你所不知道的Context(转载)
- Android View框架的layout机制
- android studio 不能导包问题解决方案
- android 证书制作与查看
- Android 双卡双待识别
- Android RecyclerView
- java Android 回调机制
- Android TV开发--实现延时关机功能(二)逻辑实现
- Android组件之服务---Service
- 移动终端播放器的探索历程
- Android课程---关于数据存储的学习(3)之数据库和事务
- Android深入透析之常用设计模式经验谈
- 使用Adreno Profiler分析android游戏
- Android课程---关于数据存储的学习(2)
- Android SQLiteOpenHelper使用
- Android课程---添加黑名单的练习2(课堂讲解)
- Xamarin.Android再体验之简单的登录Demo
- android6.0中permission授予机制的改变
- OpenCV在Android平台上的应用
- Android横竖屏切换继续播放视频