1:初始化需要处理的类和控件
mediaPlayer = new MediaPlayer();//定义一个mediapayer实例
surfaceView = (SurfaceView) findViewById(R.id.surfaceView1);//
surfaceView.getHolder().setFixedSize(400, 400);//设置一个显示的高和宽
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);//设置显示的为缓冲数据
surfaceView.getHolder().addCallback(new callback());//设置一个显示回调的接口
2:在回调显示中surfaceCreated(SurfaceHolder holder)
if(postion!=0&&path!=null)//最开始不启动播放。
{
play();//播放视频
mediaPlayer.seekTo(postion);//定位到之前播放的位置
postion=0;//将播放位置重置为0
}
private void play()
{
file=path+File.separator+"Videos"+File.separator+"vidio.mp4";//数据源的文件
mediaPlayer.reset();
try
{
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);//设置流的类型
mediaPlayer.setDisplay(surfaceView.getHolder());//设置显示的区域
mediaPlayer.setDataSource(file);//设置数据源
mediaPlayer.prepare();//准备资源
mediaPlayer.start();//启动资源播放
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
3 :销毁时候调用surfaceDestroyed(SurfaceHolder holder)
if(mediaPlayer.isPlaying())
{
postion=mediaPlayer.getCurrentPosition();
mediaPlayer.stop();
}
4:几个按钮的相应和处理
(1)播放
if(!mediaPlayer.isPlaying())
{
play();
}
(2)停止
if(mediaPlayer.isPlaying())
{
mediaPlayer.stop();
}
(3)暂停
if(mediaPlayer.isPlaying())
{
mediaPlayer.pause();
}
else {
mediaPlayer.start();
}
(4)重置
if(mediaPlayer.isPlaying())
{
mediaPlayer.seekTo(0);
}
else {
play();
}