这两天公司要让做一个播放视频的小Demo,于是网上学习了下VideoView的使用方法。

先看布局文件,很简单 就是一个VideoView和两个ImageView

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="${relativePackage}.${activityClass}" > <VideoView
android:id="@+id/videoView1"
android:layout_width="match_parent"
android:layout_height="500dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" /> <ImageView
android:id="@+id/image1"
android:layout_width="160dp"
android:layout_height="140dp"
android:layout_below="@id/videoView1"
android:src="@drawable/ic_launcher" /> <ImageView
android:layout_width="160dp"
android:layout_height="140dp"
android:layout_below="@id/videoView1"
android:layout_toRightOf="@id/image1"
android:src="@drawable/ic_launcher" /> </RelativeLayout>

然后是MainActivity

这里面有一个搜索内存文件的方法

 package com.nick.videodemo;

 import java.io.File;

 import android.app.Activity;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.os.Environment;
import android.widget.MediaController;
import android.widget.VideoView; public class MainActivity extends Activity { private VideoView mVideoView;
MediaController mediaController;
private File file;
private String key = "test.mp4"; // 关键字
private File file1;
private String pathString; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mVideoView = (VideoView) findViewById(R.id.videoView1);
mediaController = new MediaController(this);
mVideoView.setMediaController(mediaController);
file = new File(Environment.getExternalStorageDirectory().getPath());
toSearchFiles(file);
file1 = new File(pathString);
if (file1.exists()) {
mVideoView.setVideoPath(file1.getAbsolutePath());
mediaController.setMediaPlayer(mVideoView);
mVideoView.requestFocus();
mVideoView.start();
mVideoView.setOnPreparedListener(new OnPreparedListener() { @Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mp.setLooping(true);
}
});
mVideoView.setOnCompletionListener(new OnCompletionListener() { @Override
public void onCompletion(MediaPlayer mp) {
mVideoView.setVideoPath(file1.getAbsolutePath());
mVideoView.start();
}
});
}
} /**
* 遍历 Files
*
* @param file
*/
public void toSearchFiles(File file) {
File[] files = file.listFiles();
for (File tf : files) {
if (tf.isDirectory()) {
toSearchFiles(tf);
} else {
try {
if (tf.getName().indexOf(key) > -1) {
pathString = tf.getPath();
}
} catch (Exception e) {
}
}
}
}
}
mediaController = new MediaController(this); 是设置播放时候的控制器,比如快进暂停等。
这里面最主要的代码还是
34         mVideoView.setVideoPath(file1.getAbsolutePath());
35 mediaController.setMediaPlayer(mVideoView);
36 mVideoView.requestFocus();
37 mVideoView.start();
这个是把文件的路径赋给VideoView然后让mediacontroller控制这个VideoView,后面使其多的焦点并播放。
循环播放:
46             mVideoView.setOnCompletionListener(new OnCompletionListener() {
47
48 @Override
49 public void onCompletion(MediaPlayer mp) {
50 mVideoView.setVideoPath(file1.getAbsolutePath());
51 mVideoView.start();
52 }
53 });
54 }
这个是给VideoView设置播放完成后的监听器,如果播放完成则重新开始。 上面就是简单地VideoView的使用方法,记录下方便以后学习和使用。
 

Android VideoView的更多相关文章

  1. Android VideoView简单播放视频

    给Android VideoView一个文件目录,就可以直接播放智能设备中的视频文件,现在以播放事先用手机拍好并重命名的视频文件test.mp4为例.(1) 需要在布局文件中写一个ViedoView: ...

  2. Android VideoView播放视频

    今天介绍一下Android的视频播放控件VideoView,下面介绍一下VideoView的使用步骤: 1.在界面布局中定义VideoView组件,或者在程序中创建VideoView组件. 2.调用V ...

  3. Android VideoView使用小记

    在Android中播放视频一般采用VideoView,当然也可以自己使用MediaPlayer+SurfaceView,但是比较麻烦.这里记录一些我使用VideoView时的疑惑 1.如何监听播放完成 ...

  4. Android VideoView播放网络视频简介(转)

    最近项目中用到了很多视频播放的地方,不管是聊天发送的视频消息,还是类似内涵段子的视频列表,都会涉及这些知识,不过网上的知识都很零散,一会找缓存方法,一会找预览图片的方法,一会找视频动态修改尺寸的方法, ...

  5. Android VideoView无法播放网络视频

    今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...

  6. Android videoview循环播放视频

    如何在一个activity里实现videoview对一个文件夹下的所有视频文件顺序循环播放,当切换界面时暂停, 切换回来继续原来的视频播放呢.所谓的 自动循环播放就是监听到视频播放结束之后继续重新播放 ...

  7. Android ——VideoView禁止"无法播放该视频"弹窗

    我们在使用videoView播放视频时,如果获取内容失败.网址不对.或者视频格式不对等,会弹出“无法播放该视频”的弹窗,阻塞用户使用. 这种情况,如果在一些自助服务类场合下,弹窗会造成十分不友好的用户 ...

  8. Android VideoView未解决,动态读取权限、BottomNavigationView的用法

    昨天想写的,但是因为Video的毛病,是真找不出为啥了.百度也没用,学长也不清楚. 百度了那么久,大概得出结论,电脑的视频是不能用它来播放的... ..经过两天的奋斗,我居然搞定了,我的视频终于出来了 ...

  9. android videoView 加载等待

    final Handler handler = new Handler(); Runnable runnable = new Runnable() { public void run() { int ...

随机推荐

  1. tomcat源码阅读

    1      工具准备 需要SVN.Maven.JDK.Eclipse.Eclipse M2插件 2      下载源码及发布包 源码在这里:http://svn.apache.org/repos/a ...

  2. AltiumDesigner导入AutoCAD文件DXF,DWG格式

    最近有个朋友给了个AutoCAD的文件,需要我画个板子,结构什么的参见AutoCAD的文件,百度了下,得知protel是可以导入AutoCAD的DXF,DWG格式的文件的,那么AltiumDesign ...

  3. Church encoding

    In mathematics, Church encoding is a means of representing data and operators in the lambda calculus ...

  4. mysql安装2

    linux下安装mysql-5.1.51.tar.gz (2010-10-27 10:59:26) 转载▼ 标签: mysql 数据库 tar.gz安装 杂谈 分类: Mysql数据库 MySQL h ...

  5. Inotify: 高效、实时的Linux文件系统事件监控框架

      Inotify: 高效.实时的Linux文件系统事件监控框架   概要 - 为什么需要监控文件系统? 在日常工作中,人们往往需要知道在某些文件(夹)上都有那些变化,比如:   通知配置文件的改变 ...

  6. Delphi 重写控件的一个例子。

    unit DBGridEx;   interface   uses   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, ...

  7. page-object使用(1)

    创建你的page 你必须做的第一件事情是创建你的page,这是一些包含了PageObject模块的简单的ruby类,请不要创建你自己的initialize方法,因为已经有一个存在而且不能被覆盖.如果你 ...

  8. [AS/400] Control Language(CL) 基本概念

    本文内容源于 Go4AS400 简介 AS400 Control Language(CL) 是由指令(Command)组合而成,用于控制操作和调用系统功能.在 CL 程序中,指令用于和系统 OS400 ...

  9. The Minimum Length - HUST 1010(求最小循环节)

    题意:有个一字符串A(本身不是循环串),然后经过很多次自增变成AAAAA,然后呢从自增串里面切出来一部分串B,用这个串B求出来A的长度.   分析:其实就是求最小循环节.......串的长度 - 最大 ...

  10. 423. Reconstruct Original Digits from English

    这个题做得突出一个蠢字.. 思路就是看unique letter,因为题里说肯定是valid string.. 一开始有几个Z就有几个ZERO 同样的还有x for six, g for eight, ...