@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//下面开始实例化MediaPlayer对象
final MediaPlayer player = new MediaPlayer();
//设置数据数据源,也就播放文件地址,可以是网络地址
String dataPath = Environment.getExternalStorageDirectory().getPath()+"/abc.mp4";
try {
player.setDataSource(dataPath);
} catch (Exception e) {
e.printStackTrace();
}
//只有当播放器准备好了之后才能够播放,所以播放的出发只能在触发了prepare之后
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
player.start();
}
});
/*
向player中设置dispay,也就是SurfaceHolder。
但此时有可能SurfaceView还没有创建成功,所以需要监听SurfaceView的创建事件
*/
SurfaceView surfaceView = (SurfaceView)this.findViewById(R.id.surfaceView);
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceCreated(SurfaceHolder holder) {
//将播放器和SurfaceView关联起来
player.setDisplay(holder);
//异步缓冲当前视频文件,也有一个同步接口
player.prepareAsync();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
});
}
Android使用MediaPlayer播放视频的基本逻辑
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 成长记录-连载(三十六) ——我的第一篇五千字长文,说了什么,你一定想不到 并不是不想每天写公众号,而是之前思考怎...
- iOS 做视频播放器的时候有一个很大的坑,就是系统的自带的播放器有很大的限制,有些格式的视频无法播放 这个时候我们...
- 列表中视频播放采用MediaPlayer+TextureView 熟悉MP的状态图:-重复利用MP,需先reset...
- 大家好我是拓维模型推广员小谢,相信大家最初看到标题就点了进来。觉得这是一件不可思议的事情。起初没有参加投脑智...
- 来自插件大厂红巨星的调色滤镜。 提到调色,应该是PS众多功能中最常用的一种了,甚至在很多小伙伴心中都有着“PS=调...