快轉到主要內容

電腦當手機的外接螢幕,善用Scrcpy的虛擬顯示器功能刷手遊

· 民國114年乙巳年
·
切換繁體/簡體
分類   智慧型手機 手機APP分享
標籤   Scrcpy Android Debug Bridge Termux
目錄

Scrcpy有一個叫做「Virtual Display」的功能,可以讓Android手機投影畫面到電腦,將電腦當作手機的外接螢幕使用。即使手機硬體不支援Type-C螢幕輸出照樣能用喔!

嗯?Scrcpy不是本來就有這個功能嗎?這個不一樣,Scrcpy預設是投影整個手機螢幕,電腦控制手機的時候手機畫面就得跟著動,是吧?不過「Virtual Display」不同,它會在電腦端模擬一個額外的虛擬顯示器。對手機端而言,就好像有了第二個螢幕一樣。這個虛擬顯示器能夠跟手機端分開執行APP,電腦控制手機的時候會有一個獨立視窗能夠執行APP。

Scrcpy虛擬顯示器功能示例,同時執行三個手機上的APP

下面Ivon來討論這東西有啥用。

1. 虛擬顯示器的用途?
#

  1. 把現有的電腦顯示器當作手機輸出的外接螢幕,只需要USB傳輸線,不用HDMI。Scrcpy讓你能夠一邊使用電腦,一邊投影手機的畫面,且手機的畫面跟電腦上的分開。這有點類似用筆電輸出到大螢幕,然後開簡報模式那樣。

  2. 把兩台平板相連,啟用Wifi ADB,透過Termux X11跑Scrcpy。跑Scrcpy的那台平板成為另一台平板的延伸螢幕。這可以是Android對Android,或者Android對Surface平板。

  3. 最後我能想到的用法,便是電腦刷手遊的思路:使用Scrcpy虛擬顯示器,投影畫面到電腦,用電腦控制手機玩遊戲。

有些手遊不能用模擬器,一定得在手機上玩。如果同時要操控電腦又要低頭控制手機,實在麻煩了些,那麼就會想可不可以把手機螢幕投影到電腦,在同一個畫面操控。Scrcpy能做到鏡射手機螢幕到電腦的操作,問題是手機螢幕只能顯示遊戲APP畫面。這個時候利用Scrcpy虛擬顯示器解決這個問題,讓這塊多出來的虛擬顯示器專門用來跑手遊。

範例:在電腦上同時玩網頁遊戲艦隊Collection與手機上的FGO。執行FGO的時候,手機螢幕可以關閉。

過去Scrcpy只能鏡射整支手機螢幕的畫面,現在額外建立一個螢幕,專門用來執行APP並投影到電腦,這樣手機螢幕就不會被佔用,手機端可以做其他事或者關閉螢幕待機。

Sctcpy虛擬顯示器沒有限定只能跑一個,想啟動幾個虛擬顯示器就能啟動幾個!

2. Scrcpy新增虛擬顯示器指令
#

Ivon在這裡使用AOSP的系統測試,其他品牌的畫面可能略有不同。

  1. 安裝Scrcpy,Scrcpy 3.0需要以上版本。Android手機端則需要Android 10以上版本。

  2. 將手機插到電腦,啟動ADB偵錯

adb devices
  1. 嘗試連接到手機,建立一個解析度1920x1080的虛擬顯示器,DPI設定為240。如果不填寫解析度的參數,那就是自動依照手機解析度新增。
scrcpy --new-display=1920x1080/240

註:Android 15以上若出現Requires ADD_TRUSTED_DISPLAY permission to create a trusted virtual display.錯誤,可能要先執行adb root指令,Scrcpy才能建立虛擬顯示器。

  1. 之後,Scrcpy顯示的視窗就會是獨立的一個顯示器,而非Android手機的主畫面。

  2. 不知道是不是因為我的Xperia 10 V本來就不支援Type-C輸出螢幕,所以虛擬顯示器的畫面操作怪怪的。一次只能開啟一個APP,進入全螢幕,且不會顯示工作列,要開關APP得從手機端的多工界面操作。關閉虛擬顯示器的視窗之後,執行的APP也會關閉。

  3. 我們可以在建立虛擬顯示器的時候加上其他參數:

  • --stay-awake:保持手機螢幕亮著。有時候手機螢幕關閉,SoC效能可能會下降。
  • --no-vd-destroy-content 關閉虛擬顯示器視窗的時候不要關閉APP,而是將其移動回手機主畫面。
  • --no-vd-system-decorations 不知道效果為何,只知道於虛擬顯示器啟動第三方桌面APP的時候會用到。
  • --start-app <APP套件名稱>啟動虛擬顯示器之後立即開啟APP,例如--start-app com.aniplex.fategrandorder

3. 啟動多個虛擬顯示器
#

Scrcpy虛擬顯示器沒有限定只能一個!想啟動幾個就幾個,方便同時執行多個不同的APP,不過也請考量手機硬體能否負荷。

  1. 需要開兩個Scrcpy實例,也就是說啟動一個虛擬顯示器:
scrcpy --new-display=1920x1080/240
  1. 之後,電腦開啟第二個終端機視窗,啟動另外一個虛擬顯示器:
scrcpy --new-display=1280x720/240
  1. 這裡我們讓兩個虛擬顯示器解析度不一樣,比較低解析度的跑需要吃效能的遊戲,降低手機端的負擔。

4. 搭配Taskbar APP建立工作列
#

這款APP能夠顯示一個類似電腦界面的工作列。

建議先在Android系統設定 → 開發人員選項,開啟自由形式視窗。

安裝Taskbar,並開啟Desktop Mode,將其設定為主畫面預設程式,就可以在Scrcpy虛擬顯示器上顯示工作列。

可是,AOSP的視窗管理很有問題,不像Samsung Dex有專門優化,所以使用體驗不佳。APP放大後就無法縮小視窗了,不建議使用。

5. 搭配Termux跑Linux桌面,類似Samsung Dex模式
#

這是一個比較詭異的玩法。使用Termux安裝Linux環境,借用電腦的螢幕當作手機的輸出畫面,然後全螢幕執行Termux X11,再用電腦的滑鼠與鍵盤操控Termux的Linux程式。

啊你說我都在用電腦了我何必這樣做跑電腦軟體…也許,你用的是限制更多的ChromeOS呢?或者,你想要在非Samsung手機複製Samsung Dex的功能呢?Termux跑的Linux桌面環境,視窗管理比Android好。

  1. 首先,安裝Termux Proot Debian

  2. 在手機端開啟Termux

  3. 在虛擬顯示器啟動Termux X11,進入全螢幕。

  4. 透過手機端輸入指令,啟動桌面環境。

6. 用MPV放大手機畫質
#

Linux系統限定。參見Scrcpy + V4L2用法

虛擬顯示器的畫面也可以輸出到V4L2裝置做進一步操作,套用濾鏡放大手機遊戲的畫質。

參考資料
#

相關文章

Termux跑Android版Scrcpy客戶端,手機遠端控制另一部手機
分類   智慧型手機 手機APP分享
標籤   Scrcpy Termux
Scrcpy安裝教學 & 指令用法,電腦遠端控制Android手機的開源軟體
分類   智慧型手機 手機APP分享
標籤   Scrcpy Android Debug Bridge
Android與iOS如何開啟.odt檔?手機版LibreOffice APP分享 ~ Collabora Office
分類   智慧型手機 手機APP分享
標籤   LibreOffice Android IOS Microsoft Office Termux

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用圖床網站。