title: Black screen when returning to video playback activity in Android
body: <p>I'm currently developing the android application ServeStream and I've encountered and problem that I can't fix. My application will stream music and video using the android MediaPlayer class. I've modeled my class after the example found at:</p>
  
  <p><a href="http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html" rel="noreferrer">http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html</a></p>
  
  <p>The difference between this example and my own code is my MediaPlayer is runs in a service which allows it to continue playback in the background. The problem with the example android code is if I'm watching a video and I leave the current window/activity (i.e press the menu button, etc) and return to the playback activity I get a black screen but still receive audio from the video that is playing.</p>
  
  <p>When my playback activity is initially created the code shown below is executed. This code essentially creates the view used for playback and then ties it to the media player:</p>
  
  <pre><code>        setContentView(R.layout.mediaplayer_2);
          mPreview = (SurfaceView) findViewById(R.id.surface);
          holder = mPreview.getHolder();
          holder.addCallback(this);
          holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  ...
          mMediaPlayer.setDisplay(holder);
  </code></pre>
  
  <p>The important line is mMediaPlayer.setDisplay(holder) because it ties the current view/display to the media player. The view (the "holder") is destroyed when you leave the activity. After returning to the activity and recreating the view, executing mMediaPlayer.setDisplay(holder) again doesn't appear to re-attach the newly created view. A black screen is shown instead of the video.</p>
  
  <p>Does anyone have a workaround or solution for this issue. I would appreciate any help or advice.</p>