博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android——MediaPlayer+SurfaceView完整例子
阅读量:2082 次
发布时间:2019-04-29

本文共 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/

你可能感兴趣的文章