VideoView分析
前言
videoView 它是一个用于视频播放的类,对MediaPlayer, SurfaceView 进行再封装,由此开发者在安卓上播放视频更加简单。
VideoView 使用及方法
setVideoPath();
start(); //只需简单的call 这两支API 及可完成视频的起播,第一支指定要播放的文件,第二支播放
videoView 方法如下:
int getCurrentPosition():获取当前播放的位置。
int getDuration():获取当前播放视频的总长度。
isPlaying():当前VideoView是否在播放视频。
void pause():暂停
void seekTo(int msec):从第几毫秒开始播放。
void resume():重新播放。
void setVideoPath(String path):以文件路径的方式设置VideoView播放的视频源。
void setVideoURI(Uri uri):以Uri的方式设置VideoView播放的视频源,可以是网络Uri或本地Uri。
void start():开始播放。
void stopPlayback():停止播放。
setMediaController(MediaController controller):设置MediaController控制器。
setOnCompletionListener(MediaPlayer.onCompletionListener l):监听播放完成的事件。
setOnErrorListener(MediaPlayer.OnErrorListener l):监听播放发生错误时候的事件。
setOnPreparedListener(MediaPlayer.OnPreparedListener l)::监听视频装载完成的事件。
setVideoPath()
setVideoURI()
>openVideo()
>>release(false);//先call release,因为先前可能已经call start了
>>>mMediaPlayer.reset();
>>>mMediaPlayer.release();
>>mMediaPlayer = new MediaPlayer();
>>mMediaPlayer.setSubtitleAnchor(controller, this);
>>mMediaPlayer.setOnPreparedListener(mPreparedListener);
>>mMediaPlayer.setOnVideoSizeChangedListener(mSizeChangedListener);
>>mMediaPlayer.setOnCompletionListener(mCompletionListener);
>>mMediaPlayer.setOnErrorListener(mErrorListener);
>>mMediaPlayer.setOnInfoListener(mInfoListener);
>>mMediaPlayer.setOnBufferingUpdateListener(mBufferingUpdateListener);
>>mMediaPlayer.setDataSource(mContext, mUri, mHeaders);
>>mMediaPlayer.setDisplay(mSurfaceHolder);
>>mMediaPlayer.setAudioAttributes(mAudioAttributes);
>>mMediaPlayer.setScreenOnWhilePlaying(true);
>>mMediaPlayer.prepareAsync();
设置播放视频画面大小与比例:
法一:通过布局参数来设置
android.view.ViewGroup.LayoutParams lp = this.getLayoutParams();
lp.width = 1000; // required width
lp.height = 1000; // required height
this.setLayoutParams(lp);
法二:
setFixedSize(int width, int height) 与setSizeFromLayout()都是设置Surface 的大小的。
法三:通过MediaCodec
setVideoScalingMode(int mode)
VideoView分析相关推荐
- Android中对Log日志文件的分析[转]
一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...
- [Android基础] VideoView
项目需要做一个简单的播放视频功能demo,后期会换成公司自己的组件,所以就没考虑使用第三方库了,直接上系统的VideoView,在这里记录下操作; 顺便吐槽下:一直都听说简书编辑器好用,第一次使用,有 ...
- Android中对Log日志文件的分析
Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...
- Android视频播放之VideoView
Android视频播放之VideoView 1.VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用 ...
- android释放焦点_Android videoview抢占焦点的处理方法
问题描述: android 机顶盒应用: 应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button. 视频框设置无焦点,按键有焦点. 首次进入应用时焦点正常,聚 ...
- Android+上百实例源码分析以及开源分析+集合打包
1.360新版特性界面源代码 实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件.但源码好像是c++. 2.aidl跨进程调用 服务端onBind暴露,然后客户端bindServ ...
- android源码分析
01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 ...
- 如何分析和研究Log文件
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- 如何分析解决Android ANR
来自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/detail ...
最新文章
- 称不上算法的算法-1.简单的高精度计算
- Selenium3自动化测试——14.操作Cookie
- 344. Reverse String
- 丰农控股 CIO 王轶枭:万亿级农资市场,神策数据助力大丰收筑就数据驱动核心竞争力...
- 教你怎么买虚拟空间(转)
- php获取到的json数据如何处理_php – 如何从API获取JSON数据
- 数据结构---邻接矩阵的DFS
- 万字长文,SpringSecurity
- 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
- zabbix修改tomcat监控端口
- 关于BeanUtils.copyProperties的用法和优缺点
- jni数组使用(一)
- java quartz 教程_Quartz 教程
- 网络安全攻防实验室通关教程-基础篇
- Python搭建QQ聊天机器人极简教程
- 修复软件图标不正常显示问题
- mysql中explain是什么_MySQL中EXPLAIN的解释_MySQL
- Word——加了项目符号后,第二行就与第一行对不齐的一种解决方法
- okhttp https ip直连设置Host
- 初步使用计算机教学设计,【教资笔试——科目三】信息技术教学设计范例