简介

用来播放视频文件。该VideoView类可以加载各种来源的图像(如资源或内容提供商),需要计算它从视频测量,以便它可以在任何布局管理器使用,并提供诸如缩放和着色的各种显示选项。在其他的平台上面可能VideoPlayer开发是一个比较有挑战性的工作,但是在Android上面VideoPlayer的开发,基本上可以做到傻瓜式啦。本文简单对VideoPlayer的开发进行简单的介绍。

实例

1.布局文件

android:layout_width="wrap_content"

android:layout_height="wrap_content">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_centerInParent="true"

/>

2.Java代码

package com.wjq;

import android.app.Activity;

import android.content.pm.ActivityInfo;

import android.media.MediaPlayer;

import android.net.Uri;

import android.os.Bundle;

import android.os.Environment;

import android.util.Log;

import android.widget.MediaController;

import android.widget.VideoView;

public class VideoViewDemo extends Activity implements MediaPlayer.OnErrorListener,MediaPlayer.OnCompletionListener{

public static final String TAG = "VideoPlayer";

private VideoView mVideoView;

private Uri mUri;

private int mPositionWhenPaused = -1;

private MediaController mMediaController;

/* (non-Javadoc)

* @see android.app.Activity#onCreate(android.os.Bundle)

*/

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.videoview);

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

mVideoView = (VideoView)findViewById(R.id.videoview);

//文件路径

mUri = Uri.parse(Environment.getExternalStorageDirectory() + "/ziranyouli.3gp");

//Create media controller

mMediaController = new MediaController(this);

//设置MediaController

mVideoView.setMediaController(mMediaController);

}

//监听MediaPlayer上报的错误信息

@Override

public boolean onError(MediaPlayer mp, int what, int extra) {

// TODO Auto-generated method stub

return false;

}

//Video播完的时候得到通知

@Override

public void onCompletion(MediaPlayer mp) {

this.finish();

}

//开始

public void onStart() {

// Play Video

mVideoView.setVideoURI(mUri);

mVideoView.start();

super.onStart();

}

//暂停

public void onPause() {

// Stop video when the activity is pause.

mPositionWhenPaused = mVideoView.getCurrentPosition();

mVideoView.stopPlayback();

Log.d(TAG, "OnStop: mPositionWhenPaused = " + mPositionWhenPaused);

Log.d(TAG, "OnStop: getDuration  = " + mVideoView.getDuration());

super.onPause();

}

public void onResume() {

// Resume video player

if(mPositionWhenPaused >= 0) {

mVideoView.seekTo(mPositionWhenPaused);

mPositionWhenPaused = -1;

}

super.onResume();

}

}



eclipse中自定义videoview类_android控件之VideoView建立自己的播放器相关推荐

  1. 在vb中实现真正锁定的带自定义菜单的文本控件

    在vb中实现真正锁定的带自定义菜单的文本控件 /// ///这个东西的出台,是由于一个网友的帖子,太气人,我才写的,很匆忙,又什么问题,请指出!谢谢 //QQ:9181729/mail:shawfil ...

  2. C#:在一个窗体类中改变另一个窗体控件的属性

    例如:要在Form2窗体类中,改变Form1窗体中某控件的属性(内容.尺寸等). 本人所知道的至少有两种方式,第一种方法类似于设置从属关系,具体方式如下: 1.在Form1中添加一个要改变属性的控件, ...

  3. trackbar控件显示刻度值_安卓自定义电平流图形控件

    引言 在无线电监测方面,需要对信号进行展示,其中一项数据就是设备返回的电平数据,需要对其实时展示,一图胜千言,最好且最直观的方式就是图表展示,这样对其信号强弱的变化,就可以一目了然. 本文主要讲安卓版 ...

  4. WPF自定义LED风格数字显示控件

    WPF自定义LED风格数字显示控件 原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP1119 ...

  5. Qt学习之显示类的控件(QLabel、QTextBrowser、QGraphicsView、QCalendarWidget、QWebView、QProgressBar、QOpenGLWidget)

    本文转自:<Qt编程指南>        作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 5.5 显示类的控件 本节显示类控件是指作为显示用途的控件,本 ...

  6. `QStyle`自定义重绘`QSlider`控件

    简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QSlider控件. 文章目录 本博文的简述or解决问题? 系列博文: 运行效果: ...

  7. mac、iOS端支持自定义布局的collection控件的实现与设计

    介绍 collection控件用来实现界面的各种自定义布局,最常用其作为横向.竖向的布局控件.很早之前,系统对于collection的支持并不是很好.所以自己实现了支持自定义布局.自定义cell的co ...

  8. 在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField

    英文原版  |   本教程的代码(C#)   |   翻译目录   |   原文目录 导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到 ...

  9. 在 Visual C# 中,怎样为 TextBox 控件添加水印文字

    http://www.zhimengzhe.com/windows/31513.html 在使用 C# 的 TextBox 控件时,有时候会有以下需求:在用户没有输入文字时,TextBox 有文字提示 ...

最新文章

  1. wp 删除独立存储空间文件(多级非空文件夹删除)
  2. SAP HANA:持续创新十周年
  3. js中内置对象Math()常用方法笔记
  4. springMVC接收前端参数的方式
  5. 看完就懂的编辑页面如何巧妙处理时间
  6. JavaSE第十五天20160823
  7. flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍
  8. c++ auto用法_不想写表达式的类型?试试auto吧
  9. C++|OpenCV-HSV图像
  10. asp.net webform设计思路的思考
  11. 全方位打造最强终端(iterm2 + oh my zsh)
  12. 奥古斯丁:我是一去不回的风
  13. 安装Composer 出错解决方案
  14. scratch零基础
  15. 从Python爬虫到Spark预处理数据的真实需求[四]
  16. WDK李宏毅学习笔记第三周02_高斯分布与逻辑回归编程实践
  17. RTX 移植STM32F4之基础配置
  18. 【附源码】计算机毕业设计java校园招聘信息网站设计与实现
  19. AutoCAD2014的安装与激活
  20. 闲谈5个改变未来的人工智能技术(CV方向)

热门文章

  1. Hadoop之深入HDFS原理<一>
  2. springboot细节挖掘(jar和war打包)
  3. IDEA常用的风格设置
  4. arch linux 时间,archlinux入门--设置时钟 - webdancer's Blog
  5. mysql2005本地连接_sql2005连接配置详细图解
  6. mysql数据库主从不同步_mysql数据库主从不同步的解决方法
  7. oracle 11g 完美卸载,oracle 11g完美卸载
  8. [专栏精选]2018.3地形更新详解
  9. 11.10金山面试内容
  10. 使用可自定义的定期计划自动执行数据库备份