2012-12-19 63 views
1

我正在實施帶有廣告的視頻播放器。最終,在廣告播放恢復後,播放暫停並顯示一些廣告。視頻視圖中的視頻大小錯誤(Nexus 7)

爲了實現這一點,我用VideoView和另一個視圖完成了一個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)應該是相同的作爲顯示分辨率(640×360),但事實並非如此。

有什麼想法? 謝謝

回答

0

不知道的原因,但似乎有測量錯誤(我認爲有一些測量問題的其他報告n7)。 View.GONE會導致視圖被關閉,以解決現在已從消失視圖中解放出來的空間。

作爲一種解決方法,您可以避免被重新佈局 - 嘗試將兩個視圖放置在RelativeLayout中,並通過將寬度和高度上的fill_parent設置爲兩者來使它們完全重疊。然後,您可以使用setVisibility(View.INVISIBLE)這不會導致窗口小部件調整大小。