eclipse中自定义videoview类_android控件之VideoView建立自己的播放器
简介
用来播放视频文件。该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建立自己的播放器相关推荐
- 在vb中实现真正锁定的带自定义菜单的文本控件
在vb中实现真正锁定的带自定义菜单的文本控件 /// ///这个东西的出台,是由于一个网友的帖子,太气人,我才写的,很匆忙,又什么问题,请指出!谢谢 //QQ:9181729/mail:shawfil ...
- C#:在一个窗体类中改变另一个窗体控件的属性
例如:要在Form2窗体类中,改变Form1窗体中某控件的属性(内容.尺寸等). 本人所知道的至少有两种方式,第一种方法类似于设置从属关系,具体方式如下: 1.在Form1中添加一个要改变属性的控件, ...
- trackbar控件显示刻度值_安卓自定义电平流图形控件
引言 在无线电监测方面,需要对信号进行展示,其中一项数据就是设备返回的电平数据,需要对其实时展示,一图胜千言,最好且最直观的方式就是图表展示,这样对其信号强弱的变化,就可以一目了然. 本文主要讲安卓版 ...
- WPF自定义LED风格数字显示控件
WPF自定义LED风格数字显示控件 原文:WPF自定义LED风格数字显示控件 版权声明:本文为博主原创文章,转载请注明作者和出处 https://blog.csdn.net/ZZZWWWPPP1119 ...
- Qt学习之显示类的控件(QLabel、QTextBrowser、QGraphicsView、QCalendarWidget、QWebView、QProgressBar、QOpenGLWidget)
本文转自:<Qt编程指南> 作者:奇先生 Qt编程指南,Qt新手教程,Qt Programming Guide 5.5 显示类的控件 本节显示类控件是指作为显示用途的控件,本 ...
- `QStyle`自定义重绘`QSlider`控件
简介: 根据QStyle的继承关系和重绘原理:通过实现一个继承QCommonStyle类的实现,实现自己的自定义控件QSlider控件. 文章目录 本博文的简述or解决问题? 系列博文: 运行效果: ...
- mac、iOS端支持自定义布局的collection控件的实现与设计
介绍 collection控件用来实现界面的各种自定义布局,最常用其作为横向.竖向的布局控件.很早之前,系统对于collection的支持并不是很好.所以自己实现了支持自定义布局.自定义cell的co ...
- 在ASP.NET 2.0中操作数据:在GridView控件中使用TemplateField
英文原版 | 本教程的代码(C#) | 翻译目录 | 原文目录 导言 GridView是由一组字段(Field)组成的,它们都指定的了来自DataSource中的什么属性需要用到 ...
- 在 Visual C# 中,怎样为 TextBox 控件添加水印文字
http://www.zhimengzhe.com/windows/31513.html 在使用 C# 的 TextBox 控件时,有时候会有以下需求:在用户没有输入文字时,TextBox 有文字提示 ...
最新文章
- wp 删除独立存储空间文件(多级非空文件夹删除)
- SAP HANA:持续创新十周年
- js中内置对象Math()常用方法笔记
- springMVC接收前端参数的方式
- 看完就懂的编辑页面如何巧妙处理时间
- JavaSE第十五天20160823
- flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍
- c++ auto用法_不想写表达式的类型?试试auto吧
- C++|OpenCV-HSV图像
- asp.net webform设计思路的思考
- 全方位打造最强终端(iterm2 + oh my zsh)
- 奥古斯丁:我是一去不回的风
- 安装Composer 出错解决方案
- scratch零基础
- 从Python爬虫到Spark预处理数据的真实需求[四]
- WDK李宏毅学习笔记第三周02_高斯分布与逻辑回归编程实践
- RTX 移植STM32F4之基础配置
- 【附源码】计算机毕业设计java校园招聘信息网站设计与实现
- AutoCAD2014的安装与激活
- 闲谈5个改变未来的人工智能技术(CV方向)
热门文章
- Hadoop之深入HDFS原理<一>
- springboot细节挖掘(jar和war打包)
- IDEA常用的风格设置
- arch linux 时间,archlinux入门--设置时钟 - webdancer's Blog
- mysql2005本地连接_sql2005连接配置详细图解
- mysql数据库主从不同步_mysql数据库主从不同步的解决方法
- oracle 11g 完美卸载,oracle 11g完美卸载
- [专栏精选]2018.3地形更新详解
- 11.10金山面试内容
- 使用可自定义的定期计划自动执行数据库备份