利用VideoView播放视频
package com.qianhua.ui; |
002 |
003 |
import android.app.Activity; |
004 |
import android.content.Intent; |
005 |
import android.media.MediaPlayer; |
006 |
import android.net.Uri; |
007 |
import android.os.Bundle; |
008 |
import android.os.Environment; |
009 |
import android.widget.MediaController; |
010 |
import android.widget.MediaController.MediaPlayerControl; |
011 |
import android.widget.VideoView; |
012 |
013 |
import com.qianhua.R; |
014 |
015 |
public class VideoActivity extends Activity implements MediaPlayerControl |
016 |
VideoView |
017 |
018 |
@Override |
019 |
protected void onCreate(Bundle |
020 |
// |
021 |
super.onCreate(savedInstanceState); |
022 |
setContentView(R.layout.activity_video); |
023 |
videoView |
024 |
if (Environment.getExternalStorageState().equals( |
025 |
// |
026 |
videoView.setVideoURI(Uri.parse(Environment.getExternalStorageDirectory().getPath()"/"+"mm.mp4")); |
027 |
MediaControllernew MediaController(this); |
028 |
videoView.setMediaController(mediaController); |
029 |
videoView.start(); |
030 |
videoView.requestFocus(); |
031 |
|
032 |
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() |
033 |
|
034 |
@Override |
035 |
public void onCompletion(MediaPlayer |
036 |
// |
037 |
Intentnew Intent(VideoActivity.this,PersonLoginUI.class); |
038 |
startActivity(intent); |
039 |
} |
040 |
}); |
041 |
} |
042 |
043 |
} |
044 |
045 |
@Override |
046 |
public boolean canPause() |
047 |
// |
048 |
videoView.canPause(); |
049 |
return false; |
050 |
} |
051 |
052 |
@Override |
053 |
public boolean canSeekBackward() |
054 |
// |
055 |
return false; |
056 |
} |
057 |
058 |
@Override |
059 |
public boolean canSeekForward() |
060 |
// |
061 |
return false; |
062 |
} |
063 |
064 |
@Override |
065 |
public int getBufferPercentage() |
066 |
// |
067 |
return 0; |
068 |
} |
069 |
070 |
@Override |
071 |
public int getCurrentPosition() |
072 |
// |
073 |
return 0; |
074 |
} |
075 |
076 |
@Override |
077 |
public int getDuration() |
078 |
// |
079 |
return 0; |
080 |
} |
081 |
082 |
@Override |
083 |
public boolean isPlaying() |
084 |
// |
085 |
return false; |
086 |
} |
087 |
088 |
@Override |
089 |
public void pause() |
090 |
// |
091 |
if(videoView.isPlaying()){ |
092 |
videoView.pause(); |
093 |
} |
094 |
095 |
} |
096 |
097 |
@Override |
098 |
public void seekTo(int arg0) |
099 |
// |
100 |
videoView.seekTo(arg0); |
101 |
102 |
} |
103 |
104 |
@Override |
105 |
public void start() |
106 |
// |
107 |
if (!videoView.isPlaying()) |
108 |
videoView.start(); |
109 |
} |
110 |
111 |
} |
112 |
113 |
} |
利用VideoView播放视频的更多相关文章
- Android VideoView播放视频
今天介绍一下Android的视频播放控件VideoView,下面介绍一下VideoView的使用步骤: 1.在界面布局中定义VideoView组件,或者在程序中创建VideoView组件. 2.调用V ...
- Android--使用VideoView播放视频
承香墨影 Android--使用VideoView播放视频 前言 之前有讲过如何使用SurfaceView配合MediaPlayer播放视频,其实Android还为开发人员提供了另外一种更简单 ...
- 使用VideoView播放视频
为了在Android应用中播放视频,Android提供了VideoView组件,它就是一个位于android.widget包下的组件,它的作用与ImageView类似,只是ImageView用于显示图 ...
- Android开发之使用VideoView播放视频
Android提供了 VideoView组件.它的作用与ImageView类似,仅仅是ImageView用于显示图片.而VideoView用于播放视频. 使用VideoView播放视频的过程例如以下: ...
- videoview 播放视频
-videoVIew 继承SurfaceView 使用android的VideoView来播放一个视频,步骤是: 1,在xml中创建一个videoView, 2,在java中导入,然后创建一个Medi ...
- android采用videoView播放视频(包装)
//android播放视频.用法:于androidManifest.xml添加activity, // <activity android:name=".PlayVideo" ...
- Android 视频播放器 (一):使用VideoView播放视频
一.简介 作为Android开发,我们不可避免的会接触到视频播放,VideoView做为最简单的播放器,我们是不应该不会的. 下面简单介绍一下VideoView: VideoView是使用MediaP ...
- VideoView播放视频——Android
Android为开发人员提供了一种简单的播放视频媒体的方式,那就是VideoView,本篇博客就来讲讲VideoView如何播放视频,最后将以一个简单的Demo演示. VideoView VideoV ...
- Android中使用VideoView 播放视频
VideoView一般结合MediaController类使用,它会提供一个友好的图形界面,通过该界面可以控制视频的播放 package com.test.videoview; import andr ...
随机推荐
- webdriver高级应用- 测试HTML5语言实现的视频播放器
能够获取HTML5语言实现的视频播放器,视频文件的地址.时长,控制播放器进行播放或暂停播放等操作. #encoding=utf-8 import unittest from selenium impo ...
- [git 学习篇] --创建git创库
http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d ...
- 网络编程之IO复用:select or epoll
对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接.同时处理 ...
- 【Luogu】P3355骑士共存问题(最小割)
题目链接 像题面那样把棋盘染成红黄点.发现骑士迈一步能到达的点的颜色一定是跟他所在的格子的颜色不同的.于是(woc哪来的于是?这个性质有这么明显吗?)从源点向所有红点连边,从所有黄点向汇点连边,红点向 ...
- [BZOJ3585][BZOJ3339]mex
[BZOJ3585][BZOJ3339]mex 试题描述 有一个长度为n的数组{a1,a2,...,an}.m次询问,每次询问一个区间内最小没有出现过的自然数. 输入 第一行n,m.第二行为n个数.从 ...
- 搜索引擎快捷导航:一个简单的chrome插件(教程)
一.如何通过练习来提高学习新框架的最好姿势是:基于现有的业务来学习.即从工作中学习,从实践中学.但是,如果一直只使用新的框架来重写旧的业务,成长也会趋近于0.第一次,使用新框架时收获可能颇丰:第二次, ...
- TypeToken获取运行时泛型类型
最近正好使用到了Guava的TypeToken来获取泛型的类型信息 比如,泛型父类需要获取其子类定义的泛型类型时: public abstract class GenericClazz<V> ...
- 解决 Jackson反序列化 Unexpected token ... , expected VALUE_STRING: need JSON String that contains type id (for subtype of ...)
首先检查是否是 objectMapper.enableDefaultTyping(); 的受害者.优先考虑删除该配置. 使用Jackson把数组的json字符串反序列化为List时候报了个JsonMa ...
- 解决v-for产生的警告的办法
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略.如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且 ...
- 【CF1027C】Minimum Value Rectangle(贪心,数学)
题意:给定n根木棍,不允许拼接或折断,选择四根组成矩形,求所有合法矩形中周长平方与面积比最小的一个,输出拼成这个矩形的四根木棍 n<=1e6 思路:猜结论:答案必定从相邻的4根中产生 证明见ht ...