Android VideoView black screen Android VideoView black screen android android

Android VideoView black screen


I meet the same problem, and solve it with the accepted solution above plus this:

  @Override  public void onPrepared(MediaPlayer mp) {    mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {      @Override      public boolean onInfo(MediaPlayer mp, int what, int extra) {        Log.d(TAG, "onInfo, what = " + what);        if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {          // video started; hide the placeholder.          placeholder.setVisibility(View.GONE);          return true;        }        return false;      }    });

I think onPrepared just means the video is ready to play, but not means video started playing. If hide placeholder in onPrepared, the screen still show a black screen.

On my Note3 and Nexus, this solution works well.


I had the same problem on Galaxy tab 2, Android 4.1.1.

Do videoView.setZOrderOnTop(true); and next videoView.start()

It works fine for me.


I got the same problem and i found a solution. Its a little bit hacky but it do the trick.So basically you need to put your VideoView into a FrameLayout.Over the videoview you need to add another FrameLayout with the background of your video and when your video is loaded and ready to play you hide the placeholder.

<FrameLayout  android:id="@+id/frameLayout1"  android:layout_width="fill_parent"  android:layout_height="fill_parent"  android:layout_gravity="center"  android:layout_marginTop="50dip" >  <VideoView    android:id="@+id/geoloc_anim"    android:layout_width="fill_parent"    android:layout_height="172dip" android:layout_gravity="top|center" android:visibility="visible"/>  <FrameLayout      android:id="@+id/placeholder"      android:layout_width="fill_parent"      android:layout_height="fill_parent" android:background="@drawable/fondvert_anim">  </FrameLayout>

In your activity you need to implements OnPreparedListener and add this

//Called when the video is ready to playpublic void onPrepared(MediaPlayer mp) {    View placeholder = (View) findViewById(R.id.placeholder);    placeholder.setVisibility(View.GONE);}

So when the video is ready we hide our placeholder and that trick avoid the black flicker screen.

Hope this help someone.