У меня та же проблема, и я нашел решение.Это немного хакерски, но это делает свое дело.В общем, вам нужно поместить VideoView в FrameLayout.Вы можете добавить еще один FrameLayout к фоновому видео поверх фона видео, и когда видео загружено и готово к воспроизведению, вы скрываете заполнитель.
<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>
В своей деятельности вам нужнореализовать OnPreparedListener и добавить это
//Called when the video is ready to play
public void onPrepared(MediaPlayer mp) {
View placeholder = (View) findViewById(R.id.placeholder);
placeholder.setVisibility(View.GONE);
}
Так что, когда видео готово, мы скрываем наш заполнитель и этот трюк избегает черного мерцающего экрана.
Надеюсь, это кому-нибудь поможет.