Так что в моем приложении Медиаплеер основан на SurfaceView путем расширения как:Как избежать стартового черного экрана MediaPlayer?
public class VideoView extends SurfaceView {}
теперь он использует MediaPlayer внутри и что я хочу добиться того, чтобы сделать начальный цвет экрана белый вместо черного. VideoView размещается в виде белой картинки. Он белый, но он начинает воспроизводить видео, и VideoView становится черным на секунду. Видео само по себе имеет белый фон, и его первые кадры не черные, поэтому я предполагаю, что это о MediaPlayer. Когда он начинает воспроизводиться, по умолчанию экран становится черным. Я догадался, что могу использовать переход, например:
TransitionDrawable transition = new TransitionDrawable(new Drawable[]{new ColorDrawable(Color.WHITE), new ColorDrawable(Color.TRANSPARENT)});
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN)
this.setBackgroundDrawable(transition);
else
this.setBackground(transition);
transition.setCrossFadeEnabled(true);
transition.startTransition(1000);
Однако это мало помогает. Так есть способ достичь моей цели?
Забыл отметить, что его местный видеофайл (с SD-карты) воспроизводится. Таким образом, черный экран не связан с длинным установлением HTTP-сеанса или другими вещами, связанными с потоком. И подготовка осуществляется через prepareAsync();