android videoview 播放之前短暂黑屏

最近在做视频闪屏页,但是遇到了一个困难

VideoView播放视频的时候会出现黑屏,能够清晰看到黑色的屏幕,很不美观

照惯例,遇到问题先看有没有网友解决过,发现了几篇博客

Android VideoView播放本地视频短暂黑屏的解决方法

android videoview 播放前黑屏的解决方法之一

但是两个博客都没有能解决我的问题,第一篇博客提到的onInfo里面的回调其实是渲染完成的回调,但是忽略个问题:视频渲染完成,那么就可以直接播放了吗?

所以我再次想了下,播放之前黑屏的原因不在于缓冲的多少?而是在于缓冲完毕之后什么时候开始播放?黑屏就是黑在渲染完毕了但是还没有播放视频呢

所以根据第二篇博客的启发,我们可以这样搞:

在VideoView上面盖一层View,当视频开始播放的时候(注意不是缓冲完毕)再把View隐藏掉,如何判断视频已经开始播放了呢?利用Runnable+Handler

代码如下:

 videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                mediaPlayer = mp;
                videoView.start();
                mVideoViewHandler.post(runable_play);
            }
        });
runable_play= new Runnable() {
            @Override
            public void run() {
                if(mediaPlayer!=null&&mediaPlayer.getCurrentPosition()>0){
                    test_img.setVisibility(View.GONE);
                }
                if(test_img.getVisibility()==View.GONE){
                    runable_play = null;
                    mVideoViewHandler = null;
                }else {
                    mVideoViewHandler.postDelayed(runable_play, 0);
                }
            }
        };
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值