Android VideoView 播放本地视频短暂黑屏的解决方法
Android About 805 words解决办法
视频真正开始渲染后再去掉VideoView
的背景。
最终的解决办法是在onPrepared
回调中,加添加一个setOnInfoListener
的监听,在这个监听中将VideoView
的背景清除。
具体修改如下:
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.setOnInfoListener(new MediaPlayer.OnInfoListener() {
@Override
public boolean onInfo(MediaPlayer mp, int what, int extra) {
if (what == MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START) {
videoView.setBackgroundColor(Color.TRANSPARENT);
}
return true;
}
});
}
});
说明
这段代码的关键是MediaPlayer.MEDIA_INFO_VIDEO_RENDERING_START
这个变量,Android SDK
中给出的注释是:这个状态表示展现了用于渲染的第一帧视频,也就是这个时候才真正将视频帧展示到了屏幕上。
然而,这个变量是在4.1
版本才引入的,4.1
之前的版本依然不支持,好在旧版本的机器占比已经很少。
Views: 7,035 · Posted: 2019-04-11
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓
Loading...