public MjpegView setView(MjpegView view) { // releasing old view first MjpegView oldView = mView; if (oldView != null) { Log.i(TAG, "Unassign old view: " + oldView); // oldView.pausePlayback(); // TODO: print info when stop playback (change in MjpegView) mView = null; // pause data receiving (destroy all incoming pkts) try { mReceiver.setReceive(false); } catch (IOException e) { Log.e(TAG, e.getMessage()); } } // assign new view mView = view; // start playback if the assigned view is not null if (mView != null) { Log.i(TAG, "Get view: " + mView); released = false; // create MJPEG input stream MjpegDataInput mjpegDataInput = new MjpegDataInput(mReceiver); // set source mView.setSource(mjpegDataInput); mView.setOnErrorListener(this); // resume data receiving (baPkt->Socket stream->MjpegInputStream->MJpegView) // settings view.showFps(true); view.setDisplayMode(MjpegView.SIZE_FULLSCREEN); // start playback view.startPlayback(); try { mReceiver.setReceive(true); } catch (IOException e) { Log.e(TAG, e.getMessage()); } Log.i(TAG, "startPlayback()"); } return oldView; }
@Override public void onError() { mStreamFinishedListener.streamFinished(mReceiver.getRid()); Log.i(TAG, "VideoPlayer released!"); }
public void release() { if (!released) { released = true; mReceiver.release(); } }