使用surfaceView实现视频播放
2017-01-16 21:19
309 查看
1.添加权限
2.mainactivity布局文件
3.mainactivity
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2.mainactivity布局文件
<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" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <SurfaceView android:id="@+id/surfaceview" android:layout_width="match_parent" android:layout_height="match_parent"/> </RelativeLayout>
3.mainactivity
public class MainActivity extends Activity { private SurfaceView surfaceView; private SurfaceHolder holder; private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); surfaceView = (SurfaceView) findViewById(R.id.surfaceview); // 获取一个surfaceholdr对象,当surfaceview状态改变的时候可以对meidaplayer进行设置 holder = surfaceView.getHolder(); holder.addCallback(new Callback() { /** * 当surfaceview创建的时候会调用这个方法 * */ public void surfaceCreated(final SurfaceHolder holder) { // 当surfaceview创建的时候创建一个mediaplayer if (mediaPlayer == null) { mediaPlayer = new MediaPlayer(); } // 重置mediaplayer mediaPlayer.r 4000 eset(); try { // 设置资源 mediaPlayer.setDataSource("sdcard/zuixuan.flv"); // 异步准备播放资源 mediaPlayer.prepareAsync(); // 监听是否准备好了资源 mediaPlayer.setOnPreparedListener(new OnPreparedListener() { // 当资源准备好的时候会调用这个方法 public void onPrepared(MediaPlayer mp) { // 当准备好资源的时候,将 mediaPlayer.setDisplay(holder); // 开始播放视频 mediaPlayer.start(); } }); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 当surfaceview状态改变的时候会调用这个方 * */ public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } /** * 当surfaceview销毁的时候会调用这个方法 * */ public void surfaceDestroyed(SurfaceHolder holder) { // 当surfaceview销毁的时候停止播放 mediaPlayer.stop(); // 将播放器置于闲置状态 mediaPlayer.release(); // 把播放器对象置null mediaPlayer = null; } }); } }
相关文章推荐
- 使用VideoView 或者SurfaceView 实现视频播放功能
- Android视频播放框架Vitamio集成及使用MediaPlayer+SurfaceView、VideoView+MediaController实现播放网络视频
- 使用VIEWPAGER+SURFACEVIEW实现视频的循环滑动播放(一)
- android--(surfaceView实现视频播放、9.path工具使用)
- Android使用SurfaceView实现视频播放
- Android使用SurfaceView实现播放视频
- Android移动开发-使用MediaPlayer和SurfaceView播放视频的实现
- Android 学习笔记之SurfaceView的使用+如何实现视频播放...
- 使用SurFaceView实现视频播放
- MediaPlayer简单使用,绑定surfaceView实现播放视频的功能
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- SurfaceView实现视频播放
- android中使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- SurfaceView+MediaPlayer实现视频播放
- Android之SurfaceView实现视频播放
- MediaPlayer使用SurfaceView播放视频的时它们的主要配置
- Android之SurfaceView实现视频播放
- Android之SurfaceView实现视频播放
- Android中VideoView及SurfaceView视频播放实现