Android VideoView
这两天公司要让做一个播放视频的小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的更多相关文章
- Android VideoView简单播放视频
给Android VideoView一个文件目录,就可以直接播放智能设备中的视频文件,现在以播放事先用手机拍好并重命名的视频文件test.mp4为例.(1) 需要在布局文件中写一个ViedoView: ...
- Android VideoView播放视频
今天介绍一下Android的视频播放控件VideoView,下面介绍一下VideoView的使用步骤: 1.在界面布局中定义VideoView组件,或者在程序中创建VideoView组件. 2.调用V ...
- Android VideoView使用小记
在Android中播放视频一般采用VideoView,当然也可以自己使用MediaPlayer+SurfaceView,但是比较麻烦.这里记录一些我使用VideoView时的疑惑 1.如何监听播放完成 ...
- Android VideoView播放网络视频简介(转)
最近项目中用到了很多视频播放的地方,不管是聊天发送的视频消息,还是类似内涵段子的视频列表,都会涉及这些知识,不过网上的知识都很零散,一会找缓存方法,一会找预览图片的方法,一会找视频动态修改尺寸的方法, ...
- Android VideoView无法播放网络视频
今天学习Android播放视频和音频,其中在练习播放视频的时候无法播放网络视频,网络视频是别人发布在网上的,但是把视频放在本地是可以的,最后推测是没有开放网络的访问权限的问题,果然开放了之后就能正常访 ...
- Android videoview循环播放视频
如何在一个activity里实现videoview对一个文件夹下的所有视频文件顺序循环播放,当切换界面时暂停, 切换回来继续原来的视频播放呢.所谓的 自动循环播放就是监听到视频播放结束之后继续重新播放 ...
- Android ——VideoView禁止"无法播放该视频"弹窗
我们在使用videoView播放视频时,如果获取内容失败.网址不对.或者视频格式不对等,会弹出“无法播放该视频”的弹窗,阻塞用户使用. 这种情况,如果在一些自助服务类场合下,弹窗会造成十分不友好的用户 ...
- Android VideoView未解决,动态读取权限、BottomNavigationView的用法
昨天想写的,但是因为Video的毛病,是真找不出为啥了.百度也没用,学长也不清楚. 百度了那么久,大概得出结论,电脑的视频是不能用它来播放的... ..经过两天的奋斗,我居然搞定了,我的视频终于出来了 ...
- android videoView 加载等待
final Handler handler = new Handler(); Runnable runnable = new Runnable() { public void run() { int ...
随机推荐
- IIS短文件名漏洞修补方法之一改注册表一个注意项
1)1.png 为漏洞存在没有做任何修复的时候的扫描 修复:2) 修改注册表键值: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSy ...
- 工作总结:qsort函数用法
qsort(&g_AMTBuf[g_dwAMTLenth], m_nCount, sizeof(12), Compare); 参数说明: 1.待排序数组首地址: 2.数组中待排序元素数量: 3 ...
- [BZOJ 2821] 作诗(Poetize) 【分块】
题目链接:BZOJ - 2821 题目分析 因为强制在线了,所以无法用莫队..可以使用分块来做. 做法是,将 n 个数分成 n/x 个块,每个块大小为 x .先预处理出 f[i][j] ,表示从第 i ...
- Hibernate如何一个类映射两个表
一个User类有username,password属性,还有 otherInformation等其他属性,username和password映射到一个表,otherInformation等其他属性映射 ...
- 海量日志数据提取某日访问百度次数最多的那个IP的Java实现
海量日志数据提取某日访问百度次数最多的那个IP的Java实现 前几天在网上看到july的一篇文章<教你如何迅速秒杀掉:99%的海量数据处理面试题>,里面说到百度的一个面试题目,题目如下: ...
- phpMyAdmin 跨站脚本漏洞
漏洞名称: phpMyAdmin 跨站脚本漏洞 CNNVD编号: CNNVD-201307-647 发布时间: 2013-08-09 更新时间: 2013-08-09 危害等级: 低危 漏洞类型: ...
- 数学(线性规划): ZJOI2013 防守战线
偷懒用的线性规划. #include <iostream> #include <cstring> #include <cstdio> using namespace ...
- First Bad Version——LeetCode
You are a product manager and currently leading a team to develop a new product. Unfortunately, the ...
- table头部、尾部固定;中间内容定高自适应滚动
table头部.尾部固定;中间内容定高自适应滚动 很多时候,需要使用到表格做数据分析,不管是前端展现,还是后台管理系统节点展现 工作过程中遇到了,作为一个小笔记,备忘! 如下图所示 --------- ...
- 想挑战AlphaGO吗?先和PostgreSQL玩一玩?? PostgreSQL与人工智能(AI)
1月4日晚,随着古力认输,Master对人类顶尖高手的战绩停留在60胜0负1和,而令人尴尬的是这唯一一场和棋还是因为棋手掉线系统自动判和,并不是棋盘上的局势真的势均力敌了.包括聂卫平.柯洁.朴廷桓.井 ...