Android使用MediaPlayer播放视频的基本逻辑
作者:
淡蓝色梦想 | 来源:发表于
2018-12-08 17:29 被阅读0次 @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播放视频的基本逻辑
本文链接:https://www.haomeiwen.com/subject/hgnqhqtx.html
网友评论