使用MediaPlayer和SurfaceView播放视频
来源:互联网 发布:数据可视化展示方案 编辑:程序博客网 时间:2024/04/25 14:40
前面介绍了使用VideoView播放视频,使用VideoView播放视频简单方便,但是习惯使用MediaPlayer的开发者还是使用MediaPlayer;MediaPlayer本身主要用于播放音频,没有提供视频输出画面,需要借助SurfaceView,VideoView是其子类;
播放视频步骤:
【1】布局文件加入SurfaceView
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
【3】创建MediaPlayer对象,加载视频文件
player.setDataSource(Environment.getExternalStorageDirectory() + "/20150915_160202.mp4");
【4】得到SurfaceHolder添加监听器
SurfaceHolder surfaceHolder=mSurfaceView.getHolder(); surfaceHolder.setKeepScreenOn(true);
【5】调用MediaPlayer的setDisplay(SurfaceHolder sh)
player.setDisplay(surfaceHolder);//设置视频播放位置
【6】start()、stop()、pause()
下面为程序源码
public class MainActivity extends Activity { private SurfaceView mSurfaceView; private Button mButton; private MediaPlayer player; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSurfaceView = (SurfaceView) findViewById(R.id.surfaceview); mButton = (Button) findViewById(R.id.button); mButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (player == null) { player = new MediaPlayer(); } player.reset(); try { player.setDataSource(Environment.getExternalStorageDirectory() + "/20150915_160202.mp4"); player.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置播放声音类型 SurfaceHolder surfaceHolder=mSurfaceView.getHolder(); surfaceHolder.setKeepScreenOn(true); player.setDisplay(surfaceHolder);//设置视频播放位置 player.prepare();//准备 player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start();//开始播放 } }); } catch (IOException e) { e.printStackTrace(); } } }); }}
0 0
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- Android:使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView结合播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用SurfaceView和MediaPlayer播放视频
- 使用MediaPlayer和SurfaceView播放视频
- 使用SurfaceView&MediaPlayer播放视频
- 使用SurfaceView+MediaPlayer视频播放
- MediaPlayer和SurfaceView播放视频
- 文章标题
- 人人必知的10个jQuery小技巧
- ios之点击操作(单双指单双击)
- mysql中order和limit问题,请教大家
- NYOJ 108 士兵杀敌(一)(线段树—区间求和)
- 使用MediaPlayer和SurfaceView播放视频
- 一笔一划间蕴藏的学问 浅谈计算机字体
- Spring管理 hibernate 事务配置的五种方式
- LITTLE SHOP OF FLOWERS(3)
- Sublime Text 3 在OS X下编译并运行Java
- 美女,我看上你了,多少钱可以让你离开他?
- Jmeter组件执行顺序与作用域
- js中关于get请求(包括异步以及直接用过网页连接请求),后台接收乱码问题
- C#基础知识C#中的类是利用命名空间组织起来的。命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。 命名空间声明 用namespace 关键字用于声明一个命名空间。此命名空间范围允