VideoView(Nexus 7)中的视频尺寸错误

时间:2012-12-19 15:50:46

标签: android video resolution android-videoview

我正在实施一个带广告的视频播放器。最后,在广告播放恢复后,播放暂停并显示一些广告。

为了实现这一点,我使用VideoView和另一个View完成了FrameLayout以显示广告。

当广告中断时,我会这样做:

videoView.pause();
videoView.setVisibility(View.GONE);
adsView.setVisibility(View.VISIBLE):
//Play ads for X time
adsView.setVisibility(View.GONE);
videoView.setVisibility(View.VISIBLE);
videoView.play();

它非常简单,除了Nexus 7之外,它在我尝试的所有设备上都能正常工作。 在Nexus 7上重新开始播放时,视频会变小并且不会填满整个屏幕。它仅使用aprox 1/4的屏幕。

经过大量时间调查后,我意识到只有在我改变VideoView的可见性时才会发生这种情况。如果我对以下行//videoView.setVisibility(View.GONE);发表评论,问题就会消失,但我看不到广告。

可能相关的一些日志:

NvOsDebugPrintf   BeginSequence 640x368
NvOsDebugPrintf   pnvsi->nDecodeBuffers = 9 
NvOsDebugPrintf   Display Resolution : (640x360) 
NvOsDebugPrintf   Display Aspect Ratio : (128x360) 

显示宽高比(128x360)应与显示分辨率(640x360)相同,但不是。

有什么想法吗? 感谢

1 个答案:

答案 0 :(得分:0)

不确定原因但似乎存在测量误差(我认为还有其他关于n7的测量问题的报告)。 View.GONE导致视图被重新分配,以便考虑到现在没有消失视图的空间。

作为一种解决方法,您可以避免重新出现 - 尝试将两个视图放在RelativeLayout中,并通过在宽度和高度上设置fill_parent来使它们完全重叠。然后,您可以使用不会导致小部件调整大小的setVisibility(View.INVISIBLE)