所以在我的应用程序中 MediaPlayer 是基于 SurfaceView 通过扩展如下:
public class VideoView extends SurfaceView {}
现在,它在内部使用 MediaPlayer,我想要实现的是使屏幕的起始颜色为白色而不是黑色。VideoView 本身放置在白色背景布局中。它是白色的,但 atm 它开始播放视频,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();