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 ...
随机推荐
- 架设wordpress再vps上的 一些感想总结
日本vps.樱花系列 配置: 2cpu+1G内存+100G硬盘 系统 第一次我把默认的centos 给换了..原因就是,不会linux.而且我主要用.net 感觉 mono也行.但是linux不会. ...
- 求解:远程方法调用失败Exception from HRESULT: 0x800706BE)
服务器:Windows Server2003 sp2服务器 客户端:XP SP3 内容:C#Winform客户端调用服务器的Excel模板生成报表的时候,生成失败,抛出的异常如下: TargetInv ...
- hbase 0.96 单机伪分布式配置文件及遇到的问题 find命令
http://www.apache.org/dyn/closer.cgi/hbase/ 国外的站点下载速度慢,可以考虑国内的镜像网站~ 前面已经部署好了hadoop2.2.0单机伪分布式.必须先安装h ...
- jquery的笔记
1. 基本选择器 基本的 #id .class element(元素) *(全部元素) $("#id") $(".class") ...
- 使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null
今天查询了一天发现的问题,用ibatis做批量操作时,报错: [非原子批处理出现故障]使用 getNextException() 来检索已经过批处理的特定元素的异常. ERRORCODE=-4228, ...
- VBA -excel --遍历行
Sub filter1()Rem MsgBox ("AAAAA")Rem 1 get selected zoneRem 2 loop rows and check columnRe ...
- "Redis客户端连接数一直降不下来"的有关问题解决
[线上问题] "Redis客户端连接数一直降不下来"的问题解决 前段时间,上线了新的 Redis缓存(Cache)服务,准备替换掉 Memcached. 为什么要将 Memcach ...
- 字符串(后缀数组):POJ 3415 Common Substrings
Common Substrings Description A substring of a string T is defined as: T(i, k)=TiTi+1...Ti+k-1, 1≤ ...
- 在Kafka中修改Topic的preferred replica
参考site:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools 目前我们的topic test-add-repl ...
- SPJ
1. ∏sno(δjno='j1'(spj))2. ∏sno(δpno='p1'(δjno='j1'(spj)))3. ∏sno(δjno='j1'(spj)∞δcolor='红'(p))4. ∏jn ...