VideoView继承自SurfaceView,实现了MediaController.MediaPlayerControl的接口。在android系统中的包名为android.widget.VideoView。

VideoView的主要功能是显示一个指定的视频文件。VideoView可以从多个地方载入图片(比如资源或者content provider中)。

VideoView继承了Android.view.View类中的XML属性、常量、和field(我们常翻译成属性)。在VideoView下有三个构造方法:

VideoView(Context context)
VideoView(Context context, AttributeSet attrs)
VideoView(Context context, AttributeSet attrs, int defStyle)

VideoView的公有的方法有:

//这个方法是在API19中才加入的,一般情况下可以不考虑
void	 addSubtitleSource(InputStream is, MediaFormat format)
//这个方法可以设置视频是否可以暂停。
boolean canPause()
//这个方法设置视频是否可以后退
boolean canSeekBackward()
//这个方法设置视频是否可以前进。
boolean canSeekForward()
//通常是将这个View渲染到canvas上去。
void draw(Canvas canvas)
//这个方法如果错误的话会返回0.
int getAudioSessionId()
//获取缓冲百分比
int getBufferPercentage()
//获取当前的位置
int getCurrentPosition()
//获取播放视频的总时间
int getDuration()
//判断视频是否处于播放状态
boolean isPlaying()
void	 onInitializeAccessibilityEvent(AccessibilityEvent event)

void	 onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)

boolean	 onKeyDown(int keyCode, KeyEvent event)

boolean	 onTouchEvent(MotionEvent ev)

boolean	 onTrackballEvent(MotionEvent ev)
//停止时
void pause()
//取得调整后的尺寸。如果measureSpec对象传入的模式是UNSPECIFIED那么返回的是desiredSize。如果measureSpec对象传入的模式是AT_MOST,返回的将
//是desiredSize和measureSpec对象的尺寸两者中最小的那个。如果measureSpec对象传入的模式是EXACTLY,那么返回的是measureSpec对象中的尺寸大小值。
int	 resolveAdjustedSize(int desiredSize, int measureSpec)
//从暂停中恢复
void	 resume()
//跳转到
void seekTo(int msec)
//设置MediaController,方便控制视频播放
void setMediaController(MediaController controller)
//媒体在播放完毕时的回调函数
void	 setOnCompletionListener(MediaPlayer.OnCompletionListener l)
//发生错误时的回调函数
void setOnErrorListener(MediaPlayer.OnErrorListener l) void setOnInfoListener(MediaPlayer.OnInfoListener l)
//加载完毕后的回调函数
void setOnPreparedListener(MediaPlayer.OnPreparedListener l)
//设置视频播放路径
void setVideoPath(String path)
//设置URI
void setVideoURI(Uri uri)
//视频播放开始
void start()
//停止回放
void stopPlayback()
//挂起
void suspend()

以下是VideoView的protected方法:

void	 onAttachedToWindow()
void	 onDetachedFromWindow()

void	 onLayout(boolean changed, int left, int top, int right, int bottom)
void	 onMeasure(int widthMeasureSpec, int heightMeasureSpec)

以上方法在重写VideoView时实现。

VideoView继承了以下类的方法:

 android.view.SurfaceView
android.view.View
java.lang.Object //接口
android.graphics.drawable.Drawable.Callback
android.view.KeyEvent.Callback
android.view.accessibility.AccessibilityEventSource
android.widget.MediaController.MediaPlayerControl

Android下VideoView的研究的更多相关文章

  1. Android下的数据储存方式(三)

      Android下最好的数据储存方式:关系型数据库sqlite.   数据库的创建:使用SqliteOpenHelper类 结合SqliteOpenHelper类和SQLiteDatabase类的帮 ...

  2. Android如何分析和研究Monkey Log文件

    Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...

  3. 关于android内存泄漏的研究

    博客建了几个月,都没有去写,一是因为当时换工作,然后又是新入职(你懂的,好好表现),比较忙:二是也因为自己没有写博客的习惯了.现在还算是比较稳定了,加上这个迭代基本也快结束了,有点时间来写写博客.好了 ...

  4. Android下pm命令详解

    在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之. 0. Usage: ...

  5. Android下pm 命令详解

    Sam在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之.0. Usag ...

  6. Android下DrawerLayout的使用

    Android下DrawerLayout的使用 DrawerLayout见名知意,就是一个具有抽屉效果的布局,看看这个效果图,是不是感觉很炫酷 这么炫的效果其实不一定非要用类似一些SlidingMen ...

  7. 转:Android推送技术研究

    Android推送技术研究 字数5208 阅读4026 评论5 喜欢35 前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些 ...

  8. android之VideoView和视频播放View的扩展

    1.概念及扩展 VideoView 是android 系统提供的一个媒体播放显示和控制的控件.其结构层次如下: 原型:VideoView extends SurfaceView implements  ...

  9. android下创建文件夹和修改其权限的方法

    原文:http://www.cnblogs.com/wanqieddy/archive/2011/12/28/2304906.html 由于工作的需要,今天研究了在android下创建文件夹和修改其权 ...

随机推荐

  1. 不应滥用named let

    > (define (f x) x) > (define (g x) (let rec((x x)) x)) > (define a '(1 2 3)) > (f a) ( ) ...

  2. The packages can be overrided by Java Endorsed Standards

     Endorsed Standards APIs The Endorsed Standards for Java SE constitute all classes and interfaces ...

  3. 【安卓开发】Facebook工程师是如何改进他们Android客户端的

    原文出处: Facebook   译文出处:penkzhou   欢迎分享原创到伯乐头条 作为世界上最大的社交网络,Facebook的Android客户端面临着各种各样的使用环境(地理环境.Andro ...

  4. Map俩种遍历方式

    Map本身没有迭代器因而在遍历其中元素时需要采取新的措施,在JDK中提供了俩种方法 keySet Set<K> keySet() 返回此映射中包含的键的 Set 视图.该 set 受映射支 ...

  5. 发现----Android Demo

    时间悄悄的走,转眼来实习已经三个月了,三个月的时间,小编慢慢的成长着,从刚开始的电商项目到现在的车段子项目,小编在走过一个又一个项目的同时,走过了一个又一个战胜自己的奇迹,每次遇到一个新的技术点,小编 ...

  6. 【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态

    一. Objective-C 方法详解 1. 方法属性 (1) OC 方法传参机制 Object-C 方法传参机制 : OC 中得参数传递都是值传递, 传入参数的是参数的副本; -- 基本类型 (值传 ...

  7. 最简单的基于DirectShow的示例:视频播放器

    ===================================================== 最简单的基于DirectShow的示例文章列表: 最简单的基于DirectShow的示例:视 ...

  8. 09 ListView监听 ExpandableListView的使用总结

    1.ListView的滚动监听 >setOnScrollListener 监听 //ListVIew滚动监听 lv.setOnScrollListener(new OnScrollListene ...

  9. TortoiseSVN服务器ip地址修改后如何使用

    TortoiseSVN是很多人特别是程序员经常使用的工作追述工具,在长期使用过程中难免会遇到服务器迁移ip地址变更的问题.那么在服务器ip地址变化之后,我们要如何继续使用呢?步骤其实非常简单,下面我们 ...

  10. android 减少图片出现oom错误

    在做Android图片程序的时候,由于图片比较多,很有很的机会出现OOM的机会,根据网上的资料做了些总结,期待能够减少OOM出现的机会. 1.使用底层的方法来替代使用java层的方法 尽量不要使用se ...