从另一个片段启动Videoview Fragment时显示问题?

时间:2013-11-07 13:21:39

标签: android android-fragments surfaceview android-videoview

应用状态:在其中一个场景中,我创建了一个视频片段(在视频视图上有一个按钮),它是从现有的全屏片段启动的。

行为问题:在获取lauch后,VideoFragment会闪烁片刻,然后视频视图显示并启动视频,同时闪烁显示壁纸屏幕(即绘制视频视图,它完全删除屏幕上的所有视图最后显示片段屏幕)。

还做了什么:检查相同的方案以启动VideoViewActivity而不是VideoViewFragment但得到相同的结果。

它可以是:它是否与VideoView有关,因为它在全屏幕片段上绘制VideoView。

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

2 个答案:

答案 0 :(得分:1)

......小技巧在这里帮助我。由于我使用静态视频进行显示,因此我将第一帧视频(通过视频提取图像)设置为视频视图的默认BG和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));
}

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

答案 1 :(得分:0)

请写下更多代码,开始视频,xml VideoView ,闪烁的颜色是什么?它可能是背景颜色,请尝试使用透明

另请尝试使用hardware acceleration VideoView

最后,我认为这对你有所帮助:

VideoView black flash before and after playing