package com.zhiyuan3g.videosurfaceviewdemo;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.SeekBar;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private SurfaceView sfv_Show;
private MediaPlayer mMediaPlayer;
SharedPreferences sp;
private static final String PATH = Environment.getExternalStorageDirectory() + "/Movies/shipin1.mp4";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.SeekBar;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private SurfaceView sfv_Show;
private MediaPlayer mMediaPlayer;
SharedPreferences sp;
private static final String PATH = Environment.getExternalStorageDirectory() + "/Movies/shipin1.mp4";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
mMediaPlayer = new MediaPlayer();
//利用SharedPreferences存储视频播放的位置
sp = getSharedPreferences("content", MODE_PRIVATE);
try {
//设置多媒体类的数据源,可以播放音乐或者视频
mMediaPlayer.setDataSource(PATH);
//让多媒体对象做好播放的准备
mMediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
//获取SurfaceView的控制器
SurfaceHolder holder = sfv_Show.getHolder();
//设置对SurfaceView的监听
holder.addCallback(new SurfaceHolder.Callback() {
@Override//SurfaceView创建时执行
public void surfaceCreated(SurfaceHolder holder) {
try {
//设置多媒体类的数据源,可以播放音乐或者视频
mMediaPlayer.setDataSource(PATH);
//让多媒体对象做好播放的准备
mMediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
//获取SurfaceView的控制器
SurfaceHolder holder = sfv_Show.getHolder();
//设置对SurfaceView的监听
holder.addCallback(new SurfaceHolder.Callback() {
@Override//SurfaceView创建时执行
public void surfaceCreated(SurfaceHolder holder) {
mMediaPlayer.setDisplay(holder);
//获得之前视频播放的位置
int position= sp.getInt("content",0);
//让mMediaPlayer根据这个进度进行播放
//让mMediaPlayer根据这个进度进行播放
mMediaPlayer.seekTo(position);
//使用MediaPlayer开始播放视频
mMediaPlayer.start();
}
@Override//SurfaceView改变时执行
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override//SurfaceView销毁时执行
public void surfaceDestroyed(SurfaceHolder holder) {
//当多媒体对象存在时,关闭MediaPlayer对象,释放资源的逻辑操作
if (mMediaPlayer != null) {
//把记录下来的当前播放的位置,先得到一个sp的编辑器,再根据数据存储的类型把数据存到文件里进行提交
}
@Override//SurfaceView改变时执行
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
@Override//SurfaceView销毁时执行
public void surfaceDestroyed(SurfaceHolder holder) {
//当多媒体对象存在时,关闭MediaPlayer对象,释放资源的逻辑操作
if (mMediaPlayer != null) {
//把记录下来的当前播放的位置,先得到一个sp的编辑器,再根据数据存储的类型把数据存到文件里进行提交
int currentPosition = mMediaPlayer.getCurrentPosition();
//将视频当前播放的位置存到content文件中
sp.edit().putInt("content",currentPosition).commit();
mMediaPlayer.stop();//关闭MediaPlayer对象
mMediaPlayer.release();//释放MediaPlayer资源
}
}
});
;
}
private void initView() {
sfv_Show = (SurfaceView) findViewById(R.id.sfv_Show);
}
}
mMediaPlayer.stop();//关闭MediaPlayer对象
mMediaPlayer.release();//释放MediaPlayer资源
}
}
});
;
}
private void initView() {
sfv_Show = (SurfaceView) findViewById(R.id.sfv_Show);
}
}