Android下VideoView的研究
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的研究的更多相关文章
- Android下的数据储存方式(三)
Android下最好的数据储存方式:关系型数据库sqlite. 数据库的创建:使用SqliteOpenHelper类 结合SqliteOpenHelper类和SQLiteDatabase类的帮 ...
- Android如何分析和研究Monkey Log文件
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- 关于android内存泄漏的研究
博客建了几个月,都没有去写,一是因为当时换工作,然后又是新入职(你懂的,好好表现),比较忙:二是也因为自己没有写博客的习惯了.现在还算是比较稳定了,加上这个迭代基本也快结束了,有点时间来写写博客.好了 ...
- Android下pm命令详解
在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之. 0. Usage: ...
- Android下pm 命令详解
Sam在看相关PackageManager代码时,无意中发现Android 下提供一个pm命令,通常放在/system/bin/下.这个命令与Package有关,且非常实用.所以研究之.0. Usag ...
- Android下DrawerLayout的使用
Android下DrawerLayout的使用 DrawerLayout见名知意,就是一个具有抽屉效果的布局,看看这个效果图,是不是感觉很炫酷 这么炫的效果其实不一定非要用类似一些SlidingMen ...
- 转:Android推送技术研究
Android推送技术研究 字数5208 阅读4026 评论5 喜欢35 前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些 ...
- android之VideoView和视频播放View的扩展
1.概念及扩展 VideoView 是android 系统提供的一个媒体播放显示和控制的控件.其结构层次如下: 原型:VideoView extends SurfaceView implements ...
- android下创建文件夹和修改其权限的方法
原文:http://www.cnblogs.com/wanqieddy/archive/2011/12/28/2304906.html 由于工作的需要,今天研究了在android下创建文件夹和修改其权 ...
随机推荐
- Markdown语法及SublimeText下使用技巧
Markdown语法及SublimeText下使用技巧 0.缘起 最近因为一直在学习Sublime Text,所以也就顺便试用了一下ST对Markdown的支持.正好CSDN正在大力宣传新上线的Mar ...
- Dynamics CRM2016 Set Values of all Data Types using Web API
之前的博客里有谈到了web api的增删改查,里面会涉及到各种类型字段的赋值,因为时间和精力关系,没有对所有的字段类型一一测试,这篇博文中给出了全部的 http://inogic.com/blog/2 ...
- Scikit-learn:分类classification
http://blog.csdn.net/pipisorry/article/details/53034340 支持向量机SVM分类 svm分类有多种不同的算法.SVM是非常流行的机器学习算法,主要用 ...
- CocoaChina(总结)升级到xcode8遇到的问题及解决方案
此总结由CocoaChina论坛版主wo709128079及广大坛友共同汇总.>>查看原帖 升级Xcode8已是必然,升级iOS 10的用户不能说大有人在,应该也不会少,楼主听说,如果不升 ...
- java泛型总结(类型擦除、伪泛型、陷阱)
JDK1.5开始实现了对泛型的支持,但是java对泛型支持的底层实现采用的是类型擦除的方式,这是一种伪泛型.这种实现方式虽然可用但有其缺陷. <Thinking in Java>的作者 B ...
- Android快速关联V4包的方式
很多时候需要管理v4包,当然有很多种办法去关联.本人觉得最快速的方式,是通过添加配置文件的方式.只需要ctrl+c和ctrll+v就能解决了 方法如下: 1.新建一个android-support-v ...
- tomcat自动运行磁盘任意位置上的项目、使用Maven对tomcat进行自动部署
对于非Maven的web项目,有时候我们想不时常通过打war包.拷贝war包.启动tomcat来运行项目.这时候我们可以通过以下方式来进行配置: 1.1:创建web工程.工程结构如下: 1.2. ...
- Spring Boot微服务架构入门
概述 还记得在10年毕业实习的时候,当时后台三大框架为主流的后台开发框架成软件行业的标杆,当时对于软件的认识也就是照猫画虎,对于为什么会有这么样的写法,以及这种框架的优势或劣势,是不清楚的,Sprin ...
- 自定义gradview
http://blog.csdn.net/jdsjlzx/article/details/7525724 虽然Android已自带了GridView,但是,却不够灵活,同时也不能自由添加控件,因此,本 ...
- Android 深入理解Loader机制 让APP轻装上阵
本文简书同步发布,谢谢关注. http://blog.csdn.net/sk719887916/article/details/51540610 Android开发者都经历过APP UI开发不当 会造 ...