MediaPlayer、SurfaceView实现视频播放
2016-08-10 16:07
411 查看
一、传统实现的基本步骤
1、MediaPlayer mediaPlayer1 = new MediaPlayer();
2、SurfaceView的getHolder()函数可以获取SurfaceHolder对象,Surface
就在SurfaceHolder对象内。
Surface第一次被创建时回调surfaceCreated()方法
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
//开始播放
play();
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
});
}
3、
private void play() {
try {
//设置需要播放的视频 ,括号里填绝对路径或者网络url
mediaPlayer.1setDataSource(mFinalUrl);
//把视频画面输出到SurfaceView
mediaPlayer1.setDisplay(surfaceView.getHolder());
mediaPlayer1.setScreenOnWhilePlaying(true);
//从指定位置开始播放
if(position>0){
mediaPlayer1.seekTo(position);
position=0; }
//播放
mediaPlayer1.start();
} catch (Exception e) {
// TODO: handle exception
}
}
二、封装解耦
在实际应用中将蓝色部分的代码封装成一个新的BaseMediaPlayer(公司游戏中心新封装的类叫GameVedioPlayer)该类除了封装了MediaPlayer,还实现了
1、MediaPlayer mediaPlayer1 = new MediaPlayer();
2、SurfaceView的getHolder()函数可以获取SurfaceHolder对象,Surface
就在SurfaceHolder对象内。
Surface第一次被创建时回调surfaceCreated()方法
//设置播放时打开屏幕 m surfaceView.getHolder().setKeepScreenOn(true);
surfaceView.getHolder().addCallback(new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
//开始播放
play();
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
});
}
3、
private void play() {
try {
mediaPlayer1.setAudioStreamType(AudioManager.STREAM_MUSIC);
//设置需要播放的视频 ,括号里填绝对路径或者网络url
mediaPlayer.1setDataSource(mFinalUrl);
//把视频画面输出到SurfaceView
mediaPlayer1.setDisplay(surfaceView.getHolder());
mediaPlayer1.setScreenOnWhilePlaying(true);
mediaPlayer1.prepareAsync();
//从指定位置开始播放
if(position>0){
mediaPlayer1.seekTo(position);
position=0; }
//播放
mediaPlayer1.start();
} catch (Exception e) {
// TODO: handle exception
}
}
二、封装解耦
在实际应用中将蓝色部分的代码封装成一个新的BaseMediaPlayer(公司游戏中心新封装的类叫GameVedioPlayer)该类除了封装了MediaPlayer,还实现了
SurfaceHolder.Callback接口
相关文章推荐
- 运用surfaceView与MediaPlayer实现播放视频的功能
- SurfaceView和Mediaplayer实现播放网络和本地视频 一
- Android移动开发-使用MediaPlayer和SurfaceView播放视频的实现
- MediaPlayer简单使用,绑定surfaceView实现播放视频的功能
- SurfaceView + MediaPlayer 实现视频播放功能
- Android之SurfaceView实现视频播放
- SurfaceView实现视频播放
- Android里面使用MediaPlayer通过SurfaceView播放视频的示例
- MediaPlayer + SurfaceView 来实现 视频播放
- 从头学Android之多媒体--使用MediaPlayer和SurfaceView播放视频
- 使用MediaPlayer和SurfaceView播放视频
- Android之SurfaceView实现视频播放
- android中使用MediaPlayer和SurfaceView播放视频
- Android中VideoView及SurfaceView视频播放实现
- 安卓开发:弹出自定义对话框自动播放视频(仿视频广告效果,使用mediaplayer和surfaceview做播放器)
- 使用MediaPlayer和SurfaceView播放视频
- MediaPlayer使用SurfaceView播放视频的时它们的主要配置
- Android -- 视频音频多媒体播放,在线播放, MediaPlayer, SurfaceView, SoundPool, Timer定时器使用
- Android之SurfaceView实现视频播放
- Android之SurfaceView实现视频播放