从其他片段启动视频视图片段时显示问题?
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 > 默认应用程序以硬件加速运行。以上是关于从其他片段启动视频视图片段时显示问题?的主要内容,如果未能解决你的问题,请参考以下文章