多媒体之播放视频——VideoView和MediaPlayer(MediaPlayer和SurfaceView结合)
来源:互联网 发布:福建网络干部培训学院 编辑:程序博客网 时间:2024/05/30 05:41
VideoView
一、简介:
后面讲解SurfaceView。
VideoView将视频的显示和控制集于一身,它的用法和MediaPlayer很相似,因为VideoView只是做好了一个封装而已,它的背后仍然是MediaPlayer来对视频文件进行的控制。而且VideoView并不是万能的视频播放工具,只支持3gp和MP4格式的视频格式的播放,但如果只是用于播放一些游戏的片头动画,或者某个应用的视频宣传,使用VideoView还是绰绰有余的,但编写强大的视频播放器就不太现实了呢。
二、使用:
VideoView的使用非常简单,布局只需要添加VideoView组件,设置宽高即可,代码中,主要用到下面划红线的方法
注:不要忘了加权限,这里播放手机中存储的视频,需要读权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
常用的其他方法:
resume():将视频重头开始播放。
seekTo()
setVideoPath()
start()
isPlaying()
getDuration()释放资源:
在onDestroy中需要调研过年suspend()方法,将资源释放掉。
不过一般我们不使用VideoView来播放视频,会用到第三方的播放器
三、范例:
功能:播放SD卡下名称为my.3gp的视频
MediaView:
读SD卡的权限:
MediaPlayer和SurfaceView结合
这里介绍一下SurfaceView和View的区别:
View:
View必须由UI主线程去绘制。SurfaceView:
SurfaceView是自带绘制线程,独立于UI主线程之外;一些游戏界面,例如五子棋、飞机大战、贪吃蛇等可以用 SurfaceView来做,视频的播放也可以用 SurfaceView(此时它是独立的线程来绘制的视频界面。)
这里我们仅展示一下SurfaceView中视频播放这样一个小功能,和MediaPlayer相结合。
用法:
- 读权限:
- 用法:
1)布局中添加SurfaceView控件
2)其他是MediaPlayer的用法,设置资源地址,类型,唯一不同的是需要设置setdisplay,在SurfaceView上进行播放视频。
范例:
总代码:
public class MainActivity extends Activity { private Button mButtonsurface; private SurfaceView surface; private MediaPlayer mediaPlayer;//全局变量,避免每次点击都创建新对象 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mButtonsurface = (Button) findViewById(R.id.buttonsurface); surface = (SurfaceView) findViewById(R.id.surfaceView); mButtonsurface.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mediaPlayer == null) { mediaPlayer = new MediaPlayer(); } mediaPlayer.reset(); try { //设置视频地址 mediaPlayer.setDataSource(Environment.getExternalStorageDirectory() + "/my.3gp"); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置播放声音类型 mediaPlayer.setDisplay(surface.getHolder());//设置在surfaceView上播放 mediaPlayer.prepare(); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start();//准备需要一段时间,所以用监听 } }); } catch (IOException e) { e.printStackTrace(); } } }); }}
功能:点击按钮时,相应的视频在SurfaceView上进行播放。
- 多媒体之播放视频——VideoView和MediaPlayer(MediaPlayer和SurfaceView结合)
- 使用MediaPlayer和SurfaceView结合播放视频
- Android播放视频之MediaPlayer和SurfaceView
- MediaPlayer和SurfaceView播放视频
- MediaPlayer和SurfaceView播放视频
- MediaPlayer和SurfaceView播放视频
- Android 多媒体应用——MediaPlayer与SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- TextureView SurfaceView和MediaPlayer的视频播放
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 傅里叶分析之掐死教程(完整版)
- 后台 手动 join 的索引选择
- android环境配置
- hdu 5437 Alisha’s Party (优先队列)
- File not found
- 多媒体之播放视频——VideoView和MediaPlayer(MediaPlayer和SurfaceView结合)
- OpenCV实现连通域
- noip2006 作业调度方案 (模拟)
- 在Yii框架下用递归方式简单实现无限极分类
- Mysql一些变态的sql写法
- @ModelAttribute
- Hive入门指南
- WPF中画虚线
- getCanonicalpath函数的简单学习