android videoview 背景知识

来源:互联网 发布:阿里云 腾讯云哪个好 编辑:程序博客网 时间:2024/05/16 10:36

目前在android系统下:

绘制基本的基础控件:view 和 surfaceview
普通的canvas的绘制用的是view 用view的好处是基本的显示逻辑系统已经帮你解决

surface主要是用于比较独立性的开发,例如游戏开发

SurfaceView是从View基类中派生出来的显示类,可以看出GL和视频播放以及Camera摄像头一般均使用SurfaceView,到底有哪些优势呢? SurfaceView可以控制表面的格式,比如大小,显示在屏幕中的位置,最关键是的提供了SurfaceHolder类

目前android系统上用surfaceview 主要是videoview和GLSurfaceView

从这一点就可以看出videoview是一个单独的绘制线程,不会阻塞主UI线程

surfaceview中的onKeyDown 重写了view的函数,需要在初始化的时候去声明获取焦点,setFocusable(true); 如果不调用此方法,那么会造成按键无效。

原因是因为如果是自己定义一个继承自View的类,重新实现onKeyDown方法后,只有当该View获得焦点时才会调用onKeyDown方法,父类,Actvity中的onKeyDown方法是当所有控件均没有处理该按键事件时,才调用

对于videoview要设置视频的问题,我们直接可以调用

mediaplayer的setVideoPosition函数就可以完成