public void pause() { if (!state.equals(VideoState.start)) { return; } state = VideoState.pause; if (mp != null) { mp.pause(); } ivStart.setVisibility(View.VISIBLE); ivStop.setVisibility(View.VISIBLE); ivPause.setVisibility(View.INVISIBLE); }
public void start() { if (state.equals(VideoState.start)) { return; } if (null == mp) { prepare(); } state = VideoState.start; ivStart.setVisibility(View.INVISIBLE); ivStop.setVisibility(View.VISIBLE); ivPause.setVisibility(View.VISIBLE); startVideoPlayback(); }
public void stop() { if (state.equals(VideoState.stop)) { return; } state = VideoState.stop; if (mp != null) { mp.stop(); mp.release(); mp = null; } mIsVideoSizeKnown = false; ivStart.setVisibility(View.VISIBLE); ivStop.setVisibility(View.INVISIBLE); ivPause.setVisibility(View.INVISIBLE); }
private void startVideoPlayback() { if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown && state.equals(VideoState.start)) { if (null == sv) { sv = new SurfaceView(getContext()); LayoutParams lp = ViewUtils.setRelativeMargins(sv, mVideoWidth, mVideoHeight); lp.addRule(CENTER_VERTICAL); lp.addRule(CENTER_HORIZONTAL); ((ViewGroup) findViewById(R.id.rlOptionVideoBg)).addView(sv, 0); SurfaceHolder h = sv.getHolder(); sv.getHolder().setFixedSize(mVideoWidth, mVideoHeight); h.addCallback( new Callback() { @Override public void surfaceDestroyed(SurfaceHolder holder) {} @Override public void surfaceCreated(SurfaceHolder holder) { mIsVideoCreated = true; startVideoPlayback(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {} }); return; } if (!mIsVideoCreated) { return; } mp.start(); mp.setDisplay(sv.getHolder()); // sv.setVisibility(View.VISIBLE); } }