應用畫面全屏
更新時間 2024-11-22 11:40:01
最近更新時間: 2024-11-22 11:40:01
分享文章
本文說明如何設置應用畫面全屏。
為什么應用畫面沒有全屏展示?
一般設備常見有兩種方式的全屏
- 屏幕全屏
在設備屏幕范圍內全屏,沒有瀏覽器的導航欄等界面,可以通過 發布應用時開啟全屏實現 ,也可通過 SDK toggleFullscreen開啟 。
- 網頁全屏
界面元素占滿瀏覽器 viewport 范圍,全屏后仍可以看到瀏覽器的地址欄等界面。不同設備對全屏 API 的支持情況不同,若設備已至此全屏API仍然沒有將應用畫面鋪滿屏幕,您的應用可能遇到以下情況:
應用畫面有黑邊
- 修改顯示模式:云渲染默認云實例桌面分辨率為1920*1080p,若您的應用畫面存在黑邊,是由于應用窗口與終端顯示屏 寬高比不同 ,您可以通過在應用發布時設置畫面顯示模式改為拉伸、裁剪達到無黑邊全屏展示。SDK接入時也可通過landscapeType修改顯示模式。
- 設置運行窗口為全屏模式: 通過設置應用運行窗口Fullscreen Mode為Windowed Fullscreen ,可將應用分辨率按桌面分辨率顯示。
應用畫面被裁剪
- 網頁端默認實現了裁剪功能(相對中心裁剪)以保證應用無黑邊全屏顯示, 如果你要使用裁剪功能, 你應該確保你的應用預留了裁剪空間, 例如, 你的應用在被裁剪邊沒有緊貼邊緣的UI, 否則UI也會一并被裁剪. 保證裁剪余量可以通過UMG的錨點定位輕松實現。
應用畫面被壓縮
- 窗口大小超出了桌面大小,云實例桌面分辨率為1080p,若您的應用超過此大小則會出現畫面被壓縮情況,請聯系后臺人員幫助您修改云實例分辨率。
注意1.iOS系統限制,不支持網頁端開啟全屏、畫面拉伸模式。
2.修改云實例桌面分辨率功能僅對包周期客戶開放。
我需要自定義應用畫面分辨率
平臺抓流方式
應用運行后, 平臺會以應用窗口的分辨率抓取視頻流并傳輸至前端, 若運行過程中應用分辨率被中途修改, 視頻流分辨率也會隨之發生改變.
自定義分辨率
由于推流分辨率依賴于應用分辨率, 因此, 只需更改應用分辨率即可
在UE4中, 對于C++用戶:UKismetSystemLibrary::ExecuteConsoleCommand(this, "r.setRes 1920x1080w", 0);

但自定義分辨率會受限于機器分辨率, 例如對于2k機器, 其所允許的最大分辨率為1920x1080, 若超過此值, 則分辨率命令將會失效。
你可以利用此功能讓應用變成豎屏應用, 也可以適當增加應用分辨率以提升畫面清晰度, 也可以適當降低分辨率以節省帶寬和降低網絡需求。
動態分辨率
有些時候, 在設置固定應用分辨率并不能滿足業務場景時, 例如, 客戶希望應用動態適配前端設備的屏幕百分比而不必進行畫面裁剪(UMG系統內置了一套縱橫比自適應系統).我們可以基于此前建立的網頁端與應用端的網絡通信實現動態分辨率。
- 在網頁端, 你可以發送一則消息:ConsoleCommand:r.setRes 1920x1080w,隨后在UE中解析此json并進行拼接即可
- 對于C++而言, 可以監聽RayvisionSocket組件的OnMessage方法, 隨后進行解析:
{<br/>
if(Message.StartsWith("ConsoleCommand"))<br/>
{<br/>
const FString ResCommand = Message.RightChop(Message.Find(":")+1);<br/>
}<br/>
}

- 當需要修改分辨率時, 只需要調用前端對應的emit接口即可。