从其他片段启动视频视图片段时显示问题?

Posted

技术标签:

【中文标题】从其他片段启动视频视图片段时显示问题?【英文标题】:Display issue while launch Video view Fragment from other fragment? 【发布时间】:2013-11-07 13:21:39 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案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));

多视频播放场景不可行。

【讨论】:

【参考方案2】:

请多写代码,开始视频的地方,VideoView的xml,什么闪烁颜色?可能是背景色,试试transparent

还可以尝试将hardware acceleration 用于VideoView

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

VideoView black flash before and after playing

【讨论】:

我试过了,也可以在 onPrepared(..) 中使用 postDelay 延迟到 class .start() ..但它首先显示 BG 壁纸然后启动视频视图.. .有什么建议吗? 是的,我做到了,也尝试了 View 以及 Activity ......但同样。另外据我所知,从 4.0 > 默认应用程序以硬件加速运行。

以上是关于从其他片段启动视频视图片段时显示问题?的主要内容,如果未能解决你的问题,请参考以下文章

添加新片段时显示的按钮

底部导航栏的 Oncreate 视图问题

我的回收站视图第二次未在片段中显示

片段隐藏在Android中不起作用

在应用启动时显示介绍视频

Snackbar 在片段类中不起作用