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. 这是最好的时光 这是最坏的时光 v0.1.1.1

    这是最好的时光 这是最坏的时光 v0.1.1.1 1.2 学校的生活二三事之大学 话说上一回,扯了一下我青涩的少年往事,大家反响不一,有叫好的,有吐槽的,有字字码过的,也有一目十行的.我的心情也是随着 ...

  2. Docker学习笔记2: Docker 概述

    一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and  Run Any App ,AnyWhere" , ...

  3. [Vim]vim学习笔记--多个文件打开,切换,关闭

    一种情况是在shell中用vim打开多个文件,另一种是在vim编辑器中打开多个文件 同时打开多个文件 vim file1 file2  打开文件并水平窗口显示 vim -o file1 file2 打 ...

  4. FFmpeg的H.264解码器源代码简单分析:宏块解码(Decode)部分-帧间宏块(Inter)

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  5. XMPP(三)-安卓即时通讯客户端

    由于时间原因,所以更新比较慢 ,还请大家谅解,此次是对上篇文章中的安卓客户端初级版本进行的一次更新优化,在这次更新后,就有那么一点样子了,可以拿的出手了,呵呵,还在关注的同学也可以及时下载更新.此次主 ...

  6. Volley的基本使用

    Volley的基本使用 导入jar包 导入成功 源码 GET请求下载地址:http://download.csdn.net/detail/q4878802/9053969 POST请求下载地址:htt ...

  7. (NO.00005)iOS实现炸弹人游戏(九):游戏主角(二)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 上篇介绍了游戏主角的初始化方法,下面我们一次来实现主角的其他方 ...

  8. [django]用日期来查询datetime类型字段

    有一个model的字段是 DateTimeField,我现在要具体查询某一天date的数据,应该怎么用orm来查询呢? 指定年月日 YourModel.objects.filter(datetime_ ...

  9. Java并发框架——AQS阻塞队列管理(一)——自旋锁

    我们知道一个线程在尝试获取锁失败后将被阻塞并加入等待队列中,它是一个怎样的队列?又是如何管理此队列?这节聊聊CHL Node FIFO队列. 在谈到CHL Node FIFO队列之前,我们先分析这种队 ...

  10. 【Unity Shaders】Vertex Magic —— 访问顶点颜色

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...