前言

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分析相关推荐

  1. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要"干掉"它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只 ...

  2. [Android基础] VideoView

    项目需要做一个简单的播放视频功能demo,后期会换成公司自己的组件,所以就没考虑使用第三方库了,直接上系统的VideoView,在这里记录下操作; 顺便吐槽下:一直都听说简书编辑器好用,第一次使用,有 ...

  3. Android中对Log日志文件的分析

    Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...

  4. Android视频播放之VideoView

    Android视频播放之VideoView 1.VideoView类介绍 Android的VideoView组件可以从不同的来源(例如资源文件或内容提供器)读取图像,计算和维护视频的画面尺寸以使其适用 ...

  5. android释放焦点_Android videoview抢占焦点的处理方法

    问题描述: android 机顶盒应用: 应用程序主界面(MainActivity)只有两个控件,一个videoview和一个button. 视频框设置无焦点,按键有焦点. 首次进入应用时焦点正常,聚 ...

  6. Android+上百实例源码分析以及开源分析+集合打包

    1.360新版特性界面源代码 实现了360新版特性界面的效果,主要涉及到Qt的一些事件处理与自定义控件.但源码好像是c++. 2.aidl跨进程调用 服务端onBind暴露,然后客户端bindServ ...

  7. android源码分析

    01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 ...

  8. 如何分析和研究Log文件

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

  9. 如何分析解决Android ANR

    来自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/detail ...

最新文章

  1. 称不上算法的算法-1.简单的高精度计算
  2. Selenium3自动化测试——14.操作Cookie
  3. 344. Reverse String
  4. 丰农控股 CIO 王轶枭:万亿级农资市场,神策数据助力大丰收筑就数据驱动核心竞争力...
  5. 教你怎么买虚拟空间(转)
  6. php获取到的json数据如何处理_php – 如何从API获取JSON数据
  7. 数据结构---邻接矩阵的DFS
  8. 万字长文,SpringSecurity
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的递代收系统
  10. zabbix修改tomcat监控端口
  11. 关于BeanUtils.copyProperties的用法和优缺点
  12. jni数组使用(一)
  13. java quartz 教程_Quartz 教程
  14. 网络安全攻防实验室通关教程-基础篇
  15. Python搭建QQ聊天机器人极简教程
  16. 修复软件图标不正常显示问题
  17. mysql中explain是什么_MySQL中EXPLAIN的解释_MySQL
  18. Word——加了项目符号后,第二行就与第一行对不齐的一种解决方法
  19. okhttp https ip直连设置Host
  20. 初步使用计算机教学设计,【教资笔试——科目三】信息技术教学设计范例

热门文章

  1. normalization总结和实现
  2. 写在U16国少无缘亚少赛之后
  3. 憨批的语义分割重制版6——Pytorch 搭建自己的Unet语义分割平台
  4. 天翼云电脑和企业安全 “锁”了
  5. 三个警察和三个囚徒的过河问题
  6. jq jqprint 设置页脚_jquery打印插件jqprint.js使用教程
  7. jsp大作业实现TOP粉丝俱乐部
  8. 统一资源定位符URL的简单了解
  9. excel 透视表动态数据源
  10. Actor-Critic算法