Android多媒体---SurfaceView(播放视频)+Mediaplayer(音频)
2015-09-15 21:51
585 查看
前几天做了一个基于Mediaplayer的音频播放app过程还没整理好就没上传,这两天抽空整理下上传。
这一篇是Mediaplayer和Surfaceview的简单配合使用,Mediaplayer只能播放音频没有提供图像输出界面,需要用到Surfaceview显示Mediaplayer播放的图像输出,这个组件自带一个线程,需要Read权限。
步骤:
1)创建Mediaplayer对象并加载指定视频文件。
2)布局文件中定义Surfaceview或者在程序中创建,并为SurfaceHolder添加CallBack监听(以后再讲)
3)调用Mediaplayer的对象的setDisplay(SurfaceHolder sh)将锁播放的视频图像输出到指定的surfaceView组件
4)调用Mediaplayer的start()/stop()、pause()控制播放
Surfaceview布局:
在按钮操作中调用如下代码,实现音频视频同步播放
这一篇是Mediaplayer和Surfaceview的简单配合使用,Mediaplayer只能播放音频没有提供图像输出界面,需要用到Surfaceview显示Mediaplayer播放的图像输出,这个组件自带一个线程,需要Read权限。
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
步骤:
1)创建Mediaplayer对象并加载指定视频文件。
2)布局文件中定义Surfaceview或者在程序中创建,并为SurfaceHolder添加CallBack监听(以后再讲)
3)调用Mediaplayer的对象的setDisplay(SurfaceHolder sh)将锁播放的视频图像输出到指定的surfaceView组件
4)调用Mediaplayer的start()/stop()、pause()控制播放
Surfaceview布局:
<SurfaceView android:id="@+id/surfaceview" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" />
在按钮操作中调用如下代码,实现音频视频同步播放
mBtn_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (player==null){//防止太多对象吃内存 player=new MediaPlayer(); } player.reset(); try { player.setDataSource(Environment.getExternalStorageDirectory()+"/123.mp4"); player.setAudioStreamType(AudioManager.STREAM_MUSIC);//播放类型(外放还是听筒) player.setDisplay(surfaceView.getHolder());//设置视频播播放位置 player.prepare(); player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); } catch (IOException e) { e.printStackTrace(); } } });
相关文章推荐
- Android 内存泄漏的原因
- Android error 之 Syntax error, insert ";" to complete Local Variable Declaration Statement
- Android多媒体---MediaRecorder
- Android SDK Manager不能显示所有包的解决办法
- Android 多媒体应用——MediaPlayer音频播放
- Handler线程间通信
- Android多媒体---Camera(调用系统Camera,非自定义)
- 【Android开源项目解析】仿支付宝付款成功及"天女散花"效果实现——看PathMeasure大展身手
- 0915Android基础MediaRecorder
- Android之MediaPlayer——MediaRecorder
- Android(java)学习笔记257:JNI之helloword案例(利用NDK工具)
- import opencv for Android 例程总是显示错去
- android学习笔记(三)——Activity
- Android笔记 Activity&Intent
- Android——SoundPool的使用
- Android 多媒体——音频播放录制、视频播放、相机
- 0915Android基础之SoundPool
- android之gradle构建工具学习之路(二)
- Android 五种存储方式个人总结
- Android开发-Listview中显示不同的视图布局