本文共 3474 字,大约阅读时间需要 11 分钟。
public class MyVideoView extends SurfaceView { private static final String TAG = "MiGuAdVideoView"; private boolean isReady = false; private int position = 0;//续播时间 private String url = ""; private MediaPlayer player; public MiGuAdVideoView(Context context) { super(context); } public MiGuAdVideoView(Context context, AttributeSet attrs) { super(context, attrs); player = new MediaPlayer(); getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { Log.d(TAG, "surfaceCreated"); isReady = true; player.setDisplay(getHolder()); if (!"".equals(url) && !player.isPlaying()) { try { player.reset(); player.setDataSource(url); player.prepare(); player.seekTo(position); Log.d(TAG, "续播时间:" + position); } catch (IOException e) { e.printStackTrace(); } } } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { Log.d(TAG, "surfaceChanged"); } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { isReady = false; Log.d(TAG, "surfaceDestroyed"); if (player.isPlaying()) { position = player.getCurrentPosition(); Log.d(TAG, "当前播放时间:" + position); player.stop(); } } }); } public MiGuAdVideoView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public void setVideoPath(String url) { this.url = url; if (isReady) { try { player.reset(); player.setDataSource(url); player.prepare(); } catch (IOException e) { e.printStackTrace(); } } } public int getCurrentPosition() { if (player != null) { return player.getCurrentPosition(); } return 0; } public void start() { if (player != null && !player.isPlaying()) { player.start(); } } public void seekTo(int startTime) { if (player != null && player.isPlaying()) { player.seekTo(startTime); } } public void pause() { if (player != null && player.isPlaying()) { player.pause(); } } public void stop() { if (player != null) { player.stop(); } } public void setOnPreparedListener(MediaPlayer.OnPreparedListener listener) { if (player != null) { player.setOnPreparedListener(listener); } } public void setOnCompletionListener(MediaPlayer.OnCompletionListener listener) { if (player != null) { player.setOnCompletionListener(listener); } } public void setOnErrorListener(MediaPlayer.OnErrorListener listener) { if (player != null) { player.setOnErrorListener(listener); } } public void release() { if (player != null) { player.stop(); player.release(); player = null; } }}
转载地址:http://qgcqf.baihongyu.com/