栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

播放前后VideoView黑色闪烁

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

播放前后VideoView黑色闪烁

今天,我遇到了同样的问题,并发现了一个非常糟糕的解决方案,解决了这个令人讨厌的问题:我意识到可以为背景色/可绘制对象设置背景颜色/可绘制对象

VideoView
,使其在视频表面混合并完全隐藏。这仅在基础视频仍在
播放时有效
,而在停止时(正常结束或
stopPlayback()
调用时均无效)不起作用,否则,您将再次看到黑色闪烁。也不要在一开始就设置背景,否则视频从一开始就将被完全隐藏。

因此,对我而言,唯一合乎逻辑的步骤是在开始播放视频之前发布延迟的事件-
并且由于我知道视频的长度,因此我让此事件在正常结束之前的几毫秒内发生。我拍摄了VLC中最后一帧的屏幕截图,然后将其像这样混合:

private void startVideo(){    introVideo.setBackgroundDrawable(null);    introVideo.postDelayed(new Runnable() {        public void run()        { if (!introVideo.isPlaying())     return; introVideo.setBackgroundResource(R.drawable.video_still_image); // other stuff here, for example a custom transition to // another activity        }    }, 7500); // the video is roughly 8000ms long    introVideo.start();}

但是,这还不够,因为当视频实际结束时,我仍然会出现短暂的黑屏闪烁,因此我还必须将静止图像设置为包含视频的容器的背景(在我的情况下,是视频的布局活动):

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"          android:layout_width="fill_parent"          android:layout_height="fill_parent"          android:background="@drawable/video_still_image">    <VideoView android:id="@+id/introVideo"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:layout_alignParentRight="true"   android:layout_alignParentLeft="true"   android:layout_alignParentTop="true"   android:layout_alignParentBottom="true"   android:layout_marginTop="-10dip" /></RelativeLayout>

此活动以全屏呈现,并且视频(大部分)缩放为总屏幕尺寸(屏幕1024x600,视频960x640)。我 主要 说的
,因为某种未知的原因,布局的背景图片会在顶部融合约10像素。这是我必须应用的最后一个技巧-将视频容器

-10dip
移到顶部的空白处。

现在,这在我的Galaxy Tab上看起来很棒,但是我不敢在SGS2手机上对其进行测试…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/496786.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号