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

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

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

  1. VideoView(Context context)
  2. VideoView(Context context, AttributeSet attrs)
  3. VideoView(Context context, AttributeSet attrs, int defStyle)

VideoView的公有的方法有:

  1. //这个方法是在API19中才加入的,一般情况下可以不考虑
  1. void addSubtitleSource(InputStream is, MediaFormat format)
  2. //这个方法可以设置视频是否可以暂停。
  3. boolean canPause()
  1. //这个方法设置视频是否可以后退
  2. boolean canSeekBackward()
  1. //这个方法设置视频是否可以前进。
  2. boolean canSeekForward()
  1. //通常是将这个View渲染到canvas上去。
  2. void draw(Canvas canvas)
  3. //这个方法如果错误的话会返回0.
  4. int getAudioSessionId()
  5. //获取缓冲百分比
  6. int getBufferPercentage()
  1. //获取当前的位置
  2. int getCurrentPosition()
  1. //获取播放视频的总时间
  2. int getDuration()
  1. //判断视频是否处于播放状态
  2. boolean isPlaying()
  1. void onInitializeAccessibilityEvent(AccessibilityEvent event)
  2.  
  3. void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info)
  4.  
  5. boolean onKeyDown(int keyCode, KeyEvent event)
  6.  
  7. boolean onTouchEvent(MotionEvent ev)
  8.  
  9. boolean onTrackballEvent(MotionEvent ev)
  10. //停止时
  11. void pause()
  1. //取得调整后的尺寸。如果measureSpec对象传入的模式是UNSPECIFIED那么返回的是desiredSize。如果measureSpec对象传入的模式是AT_MOST,返回的将
  1. //是desiredSize和measureSpec对象的尺寸两者中最小的那个。如果measureSpec对象传入的模式是EXACTLY,那么返回的是measureSpec对象中的尺寸大小值。
  1. int resolveAdjustedSize(int desiredSize, int measureSpec)
  2. //从暂停中恢复
  1. void resume()
  1. //跳转到
  2. void seekTo(int msec)
  1. //设置MediaController,方便控制视频播放
  2. void setMediaController(MediaController controller)
  3. //媒体在播放完毕时的回调函数
  1. void setOnCompletionListener(MediaPlayer.OnCompletionListener l)
  2. //发生错误时的回调函数
  3. void setOnErrorListener(MediaPlayer.OnErrorListener l)
  4.  
  5. void setOnInfoListener(MediaPlayer.OnInfoListener l)
  6. //加载完毕后的回调函数
  7. void setOnPreparedListener(MediaPlayer.OnPreparedListener l)
  8. //设置视频播放路径
  9. void setVideoPath(String path)
  1. //设置URI
  2. void setVideoURI(Uri uri)
  1. //视频播放开始
  2. void start()
  1. //停止回放
  2. void stopPlayback()
  1. //挂起
  2. void suspend()

以下是VideoView的protected方法:

  1. void onAttachedToWindow()
  1. void onDetachedFromWindow()
  2.  
  3. void onLayout(boolean changed, int left, int top, int right, int bottom)
  1. void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

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

VideoView继承了以下类的方法:

  1. android.view.SurfaceView
  2. android.view.View
  3. java.lang.Object
  4.  
  5. //接口
  6. android.graphics.drawable.Drawable.Callback
  7. android.view.KeyEvent.Callback
  8. android.view.accessibility.AccessibilityEventSource
  9. 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. Leetcode难度表及解题汇总

    Leetcode难度表及解题汇总 参考网上一份题目难度表,以及本人的解题. Id Question Difficulty Frequency Data Structures Algorithms Bl ...

  2. 【SSH系列】初识spring+入门demo

    学习过了hibernate,也就是冬天,经过一个冬天的冬眠,当春风吹绿大地,万物复苏,我们迎来了spring,在前面的一系列博文中,小编介绍hibernate的相关知识,接下来的博文中,小编将继续介绍 ...

  3. EBS系统管理常用SQL语句整理汇总(参考网上资料&其他人博客)

    --1查找系统用户基本信息 SELECT user_id, user_name, description, employeE_id, person_party_id FROM fnd_user; -- ...

  4. 手动添加SSH支持、使用c3p0

    之前做的笔记,现在整理一下:大家有耐心的跟着做就能成功: SSH(struts2.spring.hibernate) *  struts2      *  充当mvc的角色 *  hibernate ...

  5. 在OC代码中创建Swift编写的视图控制器

    背景 近日在和一群朋友做项目,我和另一位同学负责iOS客户端,我是一直使用OC的,而他只会Swift,因此在我们分工协作之后,就需要把代码合在一起,这就牵扯到如何在TabbarController中添 ...

  6. Maven插件详解

    插件与插件目标 Maven定义了三套相互独立的生命周期,每套生命周期都有多个生命周期阶段,而这些阶段都是抽象的,不做任何工作.真正完成工作的是绑定在生命周期阶段的插件目标.插件以独立的构件形式存在,一 ...

  7. 剑指Offer——银行考试

    剑指Offer--银行考试 网申简历 一. 银行网申简历主要看哪些方面? 1.职业形象(30%),基本体现为证件照: 2.学校+成绩+校内表现(40%),体现为证书,成绩排名以及任职经历等: 3.校外 ...

  8. [ExtJS5学习笔记]第六节 Extjs的类系统Class System命名规则及定义和调试

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38479079 本文作者:sushengmiyan ----------------- ...

  9. Unable to access the IIS metabase.You do not have sufficient privilege

    今天在用vs打开以前老代码的时候报如下问题,无法打开工程了,从提示来不大可能是因为vs的版本引起的,本身我用的是最新版的vs. 网上查了下解决方法如下:找到你电脑中的如下路径"C:\Wind ...

  10. Java在Linux下 不能处理图形的解决办法 Can't connect to X11 window server

    java在图形处理时调用了本地的图形处理库.在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题.如果将程序移植到Linux/Unix上的时候有可能出 ...