Note that there are some explanatory texts on larger screens.

plurals
  1. POLive streaming in video view inside a view pager results in blank screen
    primarykey
    data
    text
    <p>I have set of mp4 videos which are streamed into a VideoView. A view pager is used to swipe between the videos.</p> <p>Problem :</p> <p>When swiping the view pager, it shows the first and second page videos perfectly. But, when the swipe reaches the third pages, the device screen goes blank and I can't seem to swipe the pages anymore. </p> <p>Working code:</p> <pre><code>public class VideoActivity extends Activity implements OnClickListener { private ViewPager videoViewPager; private CirclePageIndicator videoViewPagerIndicator; private VideoViewPagerAdapter videoViewPagerAdapter; private VideoView videoView; private Context context; private ArrayList&lt;VideoItem&gt; videoList = new ArrayList&lt;VideoItem&gt;(8); private int pageIndicatorRadius = 5; private ProgressBar progressBar = null; private MediaController mediaController = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* Flag to set hide the status bar */ requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); setContentView(R.layout.activity_main); context = this; /* Get the video item object list */ videoList = getVideoList(); /* Adapter for the view pager */ videoViewPagerAdapter = new videoViewPagerAdapter(); videoViewPager = (ViewPager) findViewById(R.id.video_viewpager); videoViewPager.setCurrentItem(0); videoViewPager.setAdapter(videoViewPagerAdapter); // videoViewPager.setOffscreenPageLimit(3); /* * Page view indicator . Using the external page view indicator library */ videoViewPagerIndicator = (CirclePageIndicator) findViewById(R.id.video_pageindicator); videoViewPagerIndicator.setViewPager(videoViewPager); videoViewPagerIndicator.setFillColor(getResources().getColor( R.color.translucent_blue)); videoViewPagerIndicator.setRadius(pageIndicatorRadius); } private class videoViewPagerAdapter extends PagerAdapter { /* Method which returns the number of page viewers */ @Override public int getCount() { return videoList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return (view == object); } @Override public Object instantiateItem(ViewGroup collection, int position) { View view = null; LayoutInflater inflater = (LayoutInflater) collection.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); // Inflater the xml layout which should be added to the page viewer view = inflater.inflate(R.layout.video, null); // Create an object of Video Item from the video list VideoItem videoItemObject = videoList.get(position); /* Initialize video player */ videoView = (VideoView) view .findViewById(R.id.video_view); progressBar = (ProgressBar) view .findViewById(R.id.video_progressbar); Uri video = Uri.parse(videoItemObject.getUrl()); mediaController = new MediaController(context); mediaController.setAnchorView(videoView); videoView.setMediaController(mediaController); videoView.setVideoURI(video); videoView.setKeepScreenOn(true); videoView.requestFocus(); videoView.setOnErrorListener(new OnErrorListener() { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Toast.makeText(context, "Error occured", Toast.LENGTH_SHORT) .show(); return false; } }); videoView.setOnPreparedListener(new OnPreparedListener() { public void onPrepared(MediaPlayer arg0) { progressBar.setVisibility(View.GONE); videoView.start(); } }); videoView .setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { videoView.stopPlayback(); } }); videoView.setSoundEffectsEnabled(true); ((ViewPager) collection).addView(view, 0); return view; } @Override public void destroyItem(ViewGroup collection, int position, Object view) { /** Stop playing the video on activity destroyed */ try { videoView.stopPlayback(); } catch (Exception e) { Log.i("Error :", "Closing video"); } ((ViewPager) collection).removeView((View) view); } } @Override protected void onDestroy() { try { videoView.stopPlayback(); } catch (Exception e) { Log.i("Error :", "Closing application"); } super.onDestroy(); } @Override protected void onPause() { try { videoView.pause(); } catch (Exception e) { Log.i("Error :", "Closing application"); } super.onPause(); } /* Function to create a video item object */ public VideoItem createVideoItem(String title, String url) { VideoItem videoItem = new VideoItem(); videoItem.setTitle(title); videoItem.setUrl(url); return videoItem; } /* Function that returns a list of video item objects */ public ArrayList&lt;VideoItem&gt; getvideoList() { ArrayList&lt;VideoItem&gt; video = new ArrayList&lt;VideoItem&gt;(8); video.add(createVideoItem("A", "http://10.0.1.15:8081/media/big_buck.mp4")); video.add(createVideoItem("B", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); video.add(createVideoItem("C", "http://10.0.1.15:8081/media/big_buck.mp4")); video.add(createVideoItem("D", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); video.add(createVideoItem("E", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); video.add(createVideoItem("F", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); video.add(createVideoItem("G", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); video.add(createVideoItem("H", "http://10.0.1.15:8081/media/big_buck_bunny.mp4")); return video; } } </code></pre> <p>Logcat:</p> <pre><code> 04-05 12:45:27.139: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:27.826: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:30.873: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:30.873: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:32.787: I/MediaPlayer(10963): path is null 04-05 12:45:32.787: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:32.826: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:32.826: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:33.444: D/MediaPlayer(10963): getMetadata 04-05 12:45:33.444: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:33.490: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:33.584: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:34.514: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:36.662: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:36.662: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:39.248: I/MediaPlayer(10963): path is null 04-05 12:45:39.248: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:39.295: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:39.303: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:39.944: D/MediaPlayer(10963): getMetadata 04-05 12:45:39.951: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:39.959: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:40.139: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:42.701: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:42.709: E/libEGL(10963): call to OpenGL ES API with no current context (logged once per thread) 04-05 12:45:42.709: W/HardwareRenderer(10963): EGL error: EGL_BAD_SURFACE 04-05 12:45:42.733: W/HardwareRenderer(10963): Mountain View, we've had a problem here. Switching back to software rendering. 04-05 12:45:44.701: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:44.701: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:45.444: D/dalvikvm(10963): GC_CONCURRENT freed 318K, 12% free 7922K/8967K, paused 3ms+6ms, total 53ms 04-05 12:45:45.740: I/MediaPlayer(10963): path is null 04-05 12:45:45.740: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:45.834: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:45.834: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:46.420: D/MediaPlayer(10963): getMetadata 04-05 12:45:46.428: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:46.436: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:46.592: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:49.006: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:49.061: I/MediaPlayer(10963): path is null 04-05 12:45:49.061: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:49.162: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:49.162: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:49.772: D/MediaPlayer(10963): getMetadata 04-05 12:45:49.772: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:49.795: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:49.990: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:50.514: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:50.592: I/MediaPlayer(10963): path is null 04-05 12:45:50.592: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:51.076: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:51.076: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:51.311: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:51.311: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:51.381: D/MediaPlayer(10963): getMetadata 04-05 12:45:51.381: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:51.436: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:51.709: I/MediaPlayer(10963): sendBroadcast android.media.IMediaPlayer.videoexist 04-05 12:45:51.834: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:45:51.912: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:51.912: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:45:59.506: I/MediaPlayer(10963): path is null 04-05 12:45:59.506: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:59.561: I/MediaPlayer(10963): path is null 04-05 12:45:59.561: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:45:59.662: D/dalvikvm(10963): GC_CONCURRENT freed 338K, 12% free 8045K/9095K, paused 13ms+9ms, total 77ms 04-05 12:45:59.678: I/MediaPlayer(10963): path is null 04-05 12:45:59.678: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:46:00.311: E/MediaPlayer(10963): stop called in state 4 04-05 12:46:00.311: E/MediaPlayer(10963): error (-38, 0) 04-05 12:46:00.444: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:46:00.451: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:46:00.475: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:46:00.475: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:46:00.483: D/MediaPlayer(10963): getMetadata 04-05 12:46:00.483: D/MediaPlayer(10963): getMetadata 04-05 12:46:00.483: W/MediaPlayer(10963): mediaplayer went away with unhandled events 04-05 12:46:01.467: I/MediaPlayer(10963): path is null 04-05 12:46:01.467: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:46:01.498: I/MediaPlayer(10963): path is null 04-05 12:46:01.498: D/MediaPlayer(10963): Couldn't open file on client side, trying server side 04-05 12:46:01.756: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:46:01.756: E/SpannableStringBuilder(10963): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length 04-05 12:46:02.061: E/MediaPlayer(10963): stop called in state 4 04-05 12:46:02.061: E/MediaPlayer(10963): error (-38, 0) 04-05 12:46:02.123: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:46:02.186: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:46:02.201: W/SurfaceView(10963): CHECK surface infomation creating=false formatChanged=false sizeChanged=false visible=false visibleChanged=true surfaceChanged=true realSizeChanged=false redrawNeeded=false left=false top=false 04-05 12:46:02.389: W/MediaPlayer(10963): mediaplayer went away with unhandled events 04-05 12:46:02.389: D/MediaPlayer(10963): getMetadata </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload