上篇采用MediaRecoder录制视频,这篇采用MediaPlayer播放录制的视频

前两个步骤与MediaRecoder一样

创建一个MediaPlayerActivity

创建MediaPlayer的步骤

1)、创建mediaPlayer对象:new MediaPlayer()

2)、设置视频源:setDataSource()

3)、设置异步准备或同步准备(当使用网络请求播放视频时最好使用异步准备):prepareAsync()

4)、设置准备监听器:OnPrepareListener()

5)、设置回调监听器,用来反馈视频播放完成后的操作:OnCompletionListener()

6)、设置画布,用来播放视频:setSurface()

7)、开始播放:start()

8)、结束播放:stop()

9)、释放:release()

MediaPlayerActivity

public class MediaPlayerActivity extends AppCompatActivity implements View.OnClickListener, MediaPlayer.OnPreparedListener, MediaPlayer.OnCompletionListener {private SurfaceView surface;private Button btn;private MediaPlayer mediaPlayer;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_media_player);surface = findViewById(R.id.surface);btn = findViewById(R.id.button2);btn.setOnClickListener(this);}@Overridepublic void onClick(View view) {String s = btn.getText().toString();if(s.equals("开始")){btn.setText("结束");mediaPlayer = new MediaPlayer();//创建//设置准备监听mediaPlayer.setOnPreparedListener(this);//设置结束监听mediaPlayer.setOnCompletionListener(this);try {//设置播放视频来源mediaPlayer.setDataSource(new File(getExternalFilesDir(""), "a.mp4").getAbsolutePath());} catch (IOException e) {e.printStackTrace();}mediaPlayer.prepareAsync();//异步准备mediaPlayer.setSurface(surface.getHolder().getSurface());//设置画布}else{btn.setText("开始");mediaPlayer.stop();mediaPlayer.release();}}@Overridepublic void onPrepared(MediaPlayer mediaPlayer) {mediaPlayer.start();}@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {btn.setText("开始");mediaPlayer.release();}
}

布局

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MediaPlayerActivity"><SurfaceViewandroid:id="@+id/surface"android:layout_width="match_parent"android:layout_height="match_parent"tools:layout_editor_absoluteX="-200dp"tools:layout_editor_absoluteY="16dp" /><Buttonandroid:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="开始"app:layout_constraintBottom_toBottomOf="@+id/surface"app:layout_constraintEnd_toEndOf="parent"app:layout_constraintStart_toStartOf="parent" /></androidx.constraintlayout.widget.ConstraintLayout>

MediaPlayer播放视频相关推荐

  1. Android 视频播放器 (二):使用MediaPlayer播放视频

    在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...

  2. 安卓使用MediaPlayer播放视频

    安卓使用MediaPlayer播放视频 媒体播放器MediaPlayer不仅可以播放音频文件,还可以播放格式为3.gp的视频文件. 与播放音频不同之处为,用于视频播放的播放承载体必须是实现了表面视图处 ...

  3. UE4使用MediaPlayer播放视频没有声音

    UE4使用MediaPlayer播放视频没有声音 简介 使用MediaPlayer播放视频 播放视频的声音 后记 简介 UE4中偶尔会有播放视频的场景,比如游戏开始的开机动画旧可能是个视频,还有游戏内 ...

  4. Android MediaPlayer播放视频详细步骤

    MediaPlayer类是媒体框架最重要的组成部分之一,此类的对象能够获取,解码以及播放音频和视频,而且只需极少量设置,它支持多种不同的媒体源,例如: 本地资源 内部Url,例如您可能从内容解析器获取 ...

  5. android mediaplayer 播放 视频 【转】

    留着,当时,对这个 没有搞清楚的... 这两天在android上面捣弄它的mediaplayer,结果发现它果然挑食无比,非常的难伺候,其成熟程度跟iphone完全不在同一个level的.放在http ...

  6. MediaPlayer 播放视频的方法

    MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.reset();//重置为初始状态 mediaPlayer.setAudioStrea ...

  7. android 使用mediaplayer播放视频的时候设置请求头header

    很简单,使用如下代码就行 Uri uri = Uri.parse("http://47.96.22.18:8002/test.pg1");Map<String, String ...

  8. android播放mp3方法,Android之MediaPlayer播放音频与视频

    本节带来的是Android多媒体中的--MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放 ...

  9. android 视频播放滤镜,用openGL ES+MediaPlayer 渲染播放视频+滤镜效果

    之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频,今天再给大家来一篇openGL ES+Me ...

最新文章

  1. 去Tech Ed得计划好
  2. python期末考试编程题_Python_编程题期末必看
  3. Citrix Director
  4. 14.理解copy_if算法的正确实现
  5. TCP协议——粘包与拆包
  6. 【BZOJ4254】Aerial Tramway 树形DP
  7. Android4.0 添加一个新的Android 键值
  8. h5手机端浏览器机制_H5 浏览器的9种缓存机制
  9. php导入csv wps乱码,《excel打开csv格式乱码》 WPS不兼容EXCEL打开后出现乱码怎么解决...
  10. mysql打开闪退 ini_解决MySql客户端秒退(找不到my.ini)
  11. 地老天荒只是一个华丽的传说
  12. vue element 地址联动的使用
  13. 【方向盘】“江郎才尽”的周杰伦,出道已21周年
  14. VLFeat vs2015 vc++ 64位操作系统 配置 运行(Win7,Win10)
  15. 学习笔记:微波遥感反演土壤水分——理论模型和经验模型(1)
  16. 数据分析三大神器之一:Numpy
  17. 淘宝商城发公告释疑2012新规 称调整绝不是涨价
  18. 对比灵敏度丨信噪比 - 开会用的全向麦克风应该怎么选?
  19. 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
  20. 大数据最佳实践-flink

热门文章

  1. 共有65款 计算机视觉库/人脸识别开源软件
  2. OpenFeign报Read timed out异常
  3. Java对URL中的中文进行UrlEncode转码
  4. uni-app小程序到微信发布踩的坑
  5. 测试pps包转发率笔记
  6. 学习中如何建立自己的资源库?
  7. 数据库系统原理 - - (6)数据库安全与保护
  8. VUE课堂笔记1-课前准备
  9. 如何将ASCII码值转换为字符
  10. 《人性的弱点》总结之一 --- 人际交往的基本技巧