使用surfaceView实现视频播放
来源:互联网 发布:php mysql web 编辑:程序博客网 时间:2024/05/23 13:13
1.添加权限
<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.reset(); 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; } }); }}
0 0
- 使用SurFaceView实现视频播放
- 使用surfaceView实现视频播放
- Android使用SurfaceView实现视频播放
- Android使用SurfaceView实现播放视频
- 使用SurfaceView+MediaPlayer+SeekBar实现视频播放
- 使用RecyclerView和SurfaceView实现视频播放
- SurfaceView实现视频播放
- SurfaceView实现视频播放
- 使用SurfaceView 播放视频
- 使用SurfaceView播放视频
- 使用Surfaceview播放视频
- SurfaceView+MediaPlayer实现视频播放
- android SurfaceView实现视频播放
- MediaPlayer、SurfaceView实现视频播放
- android使用SurfaceView播放视频
- 使用SurfaceView&MediaPlayer播放视频
- 使用SurfaceView+MediaPlayer视频播放
- android--(surfaceView实现视频播放、9.path工具使用)
- Android用Selector实现Button按下,不可点,正常三种状态下背景颜色的变化
- 如何书写高性能动画?
- Python2文件操作
- 欢迎使用CSDN-markdown编辑器
- 基于docker的caffe环境搭建
- 使用surfaceView实现视频播放
- Android 第三方框架____二
- Windows下Node.js与npm的安装与配置
- android项目中集成融云IM之实现消息提供者来显示群名
- linux/centos开机自启(linux tomcat开机自启/nginx开机自启)
- Lucene 算法原理
- JUnit的各种断言
- 001_Java语言特性详解
- 程序员面试金典——解题总结: 9.17中等难题 17.7给定一个整数,打印该整数的英文描述(例如 "One Thousand,Two Hundred-Thirty Four")