这两天公司要让做一个播放视频的小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. ubuntu進入dos界面命令 ubuntu進入圖形界面命令

    切换界面: ctrl + alt + F1是切到终端模式 Alt+F7 切到图形界面

  2. Find The Multiple(poj 1426)

    Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose ...

  3. Cortex-M0系统滴答定时器Systick详解

    上图是LPC1114系统滴答定时器(SysTick)的结构图.系统滴答定时器位于Cortex-M0内核中,也就是说,不论是LPC1114,还是其他的Cortex-M0内核单片机,都有这个系统定时器.其 ...

  4. AVR单片机RC触摸

    RC电容触摸感应按键1:RC感应原理 RC采样原理就是通过测量感应极电容的微小变化,来感知人体对电容式感应器(按键.轮键或者滑条)的感应.电极电容(C)通过一个固定的电阻(R)周期性地充放电.(原文件 ...

  5. bzoj2561

    对于新加入的边,必须要既可能在最小生成树上也可能在最大生成树上我们先对于最小生成树考虑根据kruskal的理论,不难发现,u--v 长度为L的边可能出现在最小生成树上就是说删边剩下的比L小的边一定不能 ...

  6. BZOJ 1071 [SCOI2007]组队

    1071: [SCOI2007]组队 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1330  Solved: 417[Submit][Status][ ...

  7. 并查集(逆序处理):HDU 5652 India and China Origins

    India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  8. IIS7授权错误:“无法验证对路径的访问”的解决方法

    解决方法: iis7 无法验证对路径的访问 1.打开IIS 7管理器,鼠标单击定位到出现了这个错误的网站. 2.在IIS 7管理器的右边,选择“基本设置”. 3.在弹出的“编辑网站”对话框中,单击“连 ...

  9. 用DELPHI操作EXCEL Word

    用DELPHI操作EXCEL 在DELPHI中显示EXCEL文件,可用以下简单代码做到.但要实用,则需进一步完善. var  Form1: TForm1;  EApp:variant;implemen ...

  10. log4cxx在vs2013的静态编译

    网络上找了一圈,结果都是通过修改代码来编译,做为强迫症患者接受不了这种修改代码却无法预知代码带来影响的方式,而且没有静态编译的方法,为了方便其他人后续不在走弯路,提供自己的编译方法. 虽然最终的目的是 ...