MediaPlayer播放视频
上篇采用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播放视频相关推荐
- Android 视频播放器 (二):使用MediaPlayer播放视频
在 Android 视频播放器 (一):使用VideoView播放视频 我们讲了一下如何使用VideoView播放视频,了解了基本的播放器的一些知识和内容.也知道VideoView内部封装的就是Med ...
- 安卓使用MediaPlayer播放视频
安卓使用MediaPlayer播放视频 媒体播放器MediaPlayer不仅可以播放音频文件,还可以播放格式为3.gp的视频文件. 与播放音频不同之处为,用于视频播放的播放承载体必须是实现了表面视图处 ...
- UE4使用MediaPlayer播放视频没有声音
UE4使用MediaPlayer播放视频没有声音 简介 使用MediaPlayer播放视频 播放视频的声音 后记 简介 UE4中偶尔会有播放视频的场景,比如游戏开始的开机动画旧可能是个视频,还有游戏内 ...
- Android MediaPlayer播放视频详细步骤
MediaPlayer类是媒体框架最重要的组成部分之一,此类的对象能够获取,解码以及播放音频和视频,而且只需极少量设置,它支持多种不同的媒体源,例如: 本地资源 内部Url,例如您可能从内容解析器获取 ...
- android mediaplayer 播放 视频 【转】
留着,当时,对这个 没有搞清楚的... 这两天在android上面捣弄它的mediaplayer,结果发现它果然挑食无比,非常的难伺候,其成熟程度跟iphone完全不在同一个level的.放在http ...
- MediaPlayer 播放视频的方法
MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.reset();//重置为初始状态 mediaPlayer.setAudioStrea ...
- android 使用mediaplayer播放视频的时候设置请求头header
很简单,使用如下代码就行 Uri uri = Uri.parse("http://47.96.22.18:8002/test.pg1");Map<String, String ...
- android播放mp3方法,Android之MediaPlayer播放音频与视频
本节带来的是Android多媒体中的--MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放 ...
- android 视频播放滤镜,用openGL ES+MediaPlayer 渲染播放视频+滤镜效果
之前曾经写过用SurfaceView,TextureView+MediaPlayer 播放视频,和 ffmpeg avi解码后SurfaceView播放视频,今天再给大家来一篇openGL ES+Me ...
最新文章
- 去Tech Ed得计划好
- python期末考试编程题_Python_编程题期末必看
- Citrix Director
- 14.理解copy_if算法的正确实现
- TCP协议——粘包与拆包
- 【BZOJ4254】Aerial Tramway 树形DP
- Android4.0 添加一个新的Android 键值
- h5手机端浏览器机制_H5 浏览器的9种缓存机制
- php导入csv wps乱码,《excel打开csv格式乱码》 WPS不兼容EXCEL打开后出现乱码怎么解决...
- mysql打开闪退 ini_解决MySql客户端秒退(找不到my.ini)
- 地老天荒只是一个华丽的传说
- vue element 地址联动的使用
- 【方向盘】“江郎才尽”的周杰伦,出道已21周年
- VLFeat vs2015 vc++ 64位操作系统 配置 运行(Win7,Win10)
- 学习笔记:微波遥感反演土壤水分——理论模型和经验模型(1)
- 数据分析三大神器之一:Numpy
- 淘宝商城发公告释疑2012新规 称调整绝不是涨价
- 对比灵敏度丨信噪比 - 开会用的全向麦克风应该怎么选?
- 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
- 大数据最佳实践-flink