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.