2014-09-25 77 views
5

我一直在爲此苦苦掙扎。使用Lightning HDMI適配器時,移除ios外部顯示器上的欠掃描/框架

大家都可能知道,閃電HDMI適配器不支持1080p輸出,當涉及到使用連接的顯示器作爲第二屏幕(達到1080的唯一途徑是視頻流,但不幸的是,不是我的情況下)的應用程序。

最大輸出分辨率爲1600x900,這對我來說可能不錯,但我絕對需要擺脫窗口周圍的「黑框」,我無法弄清楚如何去做。我能做到的唯一方法就是在電視菜單中手動拉伸電視輸出圖像,但正如您可能想象的那樣,對於我的最終產品來說這不是一個可行的解決方案。

我已經試過

secondScreen.overscanCompensation = UIScreenOverscanCompensationInsetApplicationFrame | UIScreenOverscanCompensationInsetBounds; 

,沒有運氣:我的問題是不是「過掃描」,是「欠」我怕的是,操作系統可以不知道高分辨率的電視若的適配器說1600x900是最高的。

如果我將MacBookPro連接到同一臺電視機,並在顯示器設置中強制使用1600x900,則整個屏幕會以某種方式正確調整大小,以覆蓋整個電視機的物理區域,而不會出現黑框。我想知道在iOS生態系統中是否有類似的選項。

我也試着到輸出的東西強制720P這樣

for (UIScreenMode* mode in secondScreen.availableModes) { 
     NSLog(@"%f %f",mode.size.width,mode.size.height); 
     if (mode.size.height == 720) { 
      secondScreen.currentMode = mode; 
     } 
    } 

,因爲你不能手動創建一個UIScreenMode,但它仍然使用1600×900。因爲雷電適配器沒有數據連接(只有充電),所以我不能使用XCODE調試,因此一切都很難調試。所以我不能使用XCODE調試...

我也試過用AirPlay和VGA Adapter,1080p工作像一個魅力,但由於各種原因,我需要使用HDMI。 iOS8沒有解決這個問題,不幸的是

有沒有人有一個很好的主意,建議?謝謝你們。

更新1:

我還發現,當您與支持1080p但沒有(例如)HDMI輸入連接舊的顯示器/ TV(我知道,VGA適配器可以給你煩惱它與VGA無關,我只是想解釋這臺顯示器有多大的分辨率,即使提供了1920x1080的分辨率。這是一臺夏普等離子電視機,不知道正確的型號)。

當用VGA適配器連接到iPad Air時,輸出爲1024x768,控制檯登出了「無法識別屏幕UUID」之類的東西。 我也嘗試過使用HDMI電纜(因爲顯示器沒有HDMI輸入,所以我不得不在顯示器的末端使用HDMI-> DVI適配器),但我得到的只有1600x900。

但是,我能夠解決這個問題,但我仍然無法解釋爲什麼這個工作: 我閃電到HDMI適配器插入ipad,然後我連接了一個HDMI到VGA適配器(不相關到蘋果公司),然後用VGA長電纜連接到顯示器。 1920x1080就像一個魅力。

這不應該是可能的(我通過一個HDMI /雷電適配器,它只能輸出最大1600x900的全高清分辨率),但它的工作,試試看,如果你真的遇到麻煩像我一樣。

另外,請注意,結果會因不同的電視/顯示器/屏幕而異。這完全不可靠。

回答

1

如果您試圖擺脫掃描下/邊框,那麼我建議您按照以下代碼所示縮放過掃描補償。我已經測試了它使用閃電至hdmi電纜,它在沒有邊界的外部顯示器上工作良好。希望這可以幫助。歡呼聲

示例代碼:

if UIScreen.screens.count > 1 { 
      let secondScreen = UIScreen.screens[1] 
      secondScreen.overscanCompensation = UIScreenOverscanCompensation(rawValue: UIScreenOverscanCompensation.scale.rawValue.advanced(by: 2))! 
      secondWindow = UIWindow(frame: secondScreen.bounds) 
      secondWindow?.screen = secondScreen 
      secondWindow?.isHidden = false 
} 
+0

謝謝你,這個工作就像我們的一個魅力。 – bergy 2018-02-26 20:56:09