0

应用程序状态:在一种情况下,我创建了一个视频片段(在视频视图上有一个按钮),它从现有的全屏片段启动。

行为问题:在获得 lauch VideoFragment 之后闪烁片刻,然后视频视图显示并开始视频,同时闪烁它显示壁纸屏幕(即绘制视频视图它完全从屏幕上删除所有视图,甚至最后一个显示片段屏幕也)。

还有什么:检查相同的场景以启动 VideoViewActivity 而不是 VideoViewFragment 但得到相同的结果。

它可能是:它是 VideoView 的问题,因为这里它在全屏片段上绘制 VideoView。

这里有任何建议,我该如何解决这个问题?

4

2 回答 2

1

...小技巧在这里帮助我。由于我使用静态视频来显示,所以我将视频的第一帧(通过从视频中提取图像)设置为视频视图的默认背景并在 onPrepare(..)

    public void onPrepared(MediaPlayer mp) {

            mVideoView.start();

            mVideoView.postDelayed(new Runnable() {

                @Override
                public void run() {

                    MainActivity.getInstance().runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            mVideoView.setBackgroundColor(color.transparent);
                            btnSkip.setVisibility(View.VISIBLE);
                            btnSkip.requestFocus(); 
                        }
                    });
                }
            }, 300);
        }

开始视频后延迟了几秒钟。和 onComplete(..) 一样。

@Override
    public void onCompletion(MediaPlayer mp) {

        btnSkip.setVisibility(View.GONE);
        mVideoView.setBackgroundColor(getResources().getColor(R.color.bg));
}

对于多视频播放场景,这是不可行的解决方案。

于 2013-11-11T06:53:09.570 回答
0

请编写更多代码,从哪里开始 video,以及VideoView的 xml ,什么闪烁颜色?它可能是背景颜色,尝试使用透明

也尝试对VideoView使用硬件加速

总之,我认为这对你有帮助:

VideoView播放前后黑闪

于 2013-11-07T13:35:27.830 回答