Scrcpy有一個叫做「Virtual Display」的功能,可以讓Android手機投影畫面到電腦,將電腦當作手機的外接螢幕使用。即使手機硬體不支援Type-C螢幕輸出照樣能用喔!
嗯?Scrcpy不是本來就有這個功能嗎?這個不一樣,Scrcpy預設是投影整個手機螢幕,電腦控制手機的時候手機畫面就得跟著動,是吧?不過「Virtual Display」不同,它會在電腦端模擬一個額外的虛擬顯示器。對手機端而言,就好像有了第二個螢幕一樣。這個虛擬顯示器能夠跟手機端分開執行APP,電腦控制手機的時候會有一個獨立視窗能夠執行APP。
下面Ivon來討論這東西有啥用。
1. 虛擬顯示器的用途?#
把現有的電腦顯示器當作手機輸出的外接螢幕,只需要USB傳輸線,不用HDMI。Scrcpy讓你能夠一邊使用電腦,一邊投影手機的畫面,且手機的畫面跟電腦上的分開。這有點類似用筆電輸出到大螢幕,然後開簡報模式那樣。
把兩台平板相連,啟用Wifi ADB,透過Termux X11跑Scrcpy。跑Scrcpy的那台平板成為另一台平板的延伸螢幕。這可以是Android對Android,或者Android對Surface平板。
最後我能想到的用法,便是電腦刷手遊的思路:使用Scrcpy虛擬顯示器,投影畫面到電腦,用電腦控制手機玩遊戲。
有些手遊不能用模擬器,一定得在手機上玩。如果同時要操控電腦又要低頭控制手機,實在麻煩了些,那麼就會想可不可以把手機螢幕投影到電腦,在同一個畫面操控。Scrcpy能做到鏡射手機螢幕到電腦的操作,問題是手機螢幕只能顯示遊戲APP畫面。這個時候利用Scrcpy虛擬顯示器解決這個問題,讓這塊多出來的虛擬顯示器專門用來跑手遊。
範例:在電腦上同時玩網頁遊戲艦隊Collection與手機上的FGO。執行FGO的時候,手機螢幕可以關閉。
過去Scrcpy只能鏡射整支手機螢幕的畫面,現在額外建立一個螢幕,專門用來執行APP並投影到電腦,這樣手機螢幕就不會被佔用,手機端可以做其他事或者關閉螢幕待機。
Sctcpy虛擬顯示器沒有限定只能跑一個,想啟動幾個虛擬顯示器就能啟動幾個!
2. Scrcpy新增虛擬顯示器指令#
Ivon在這裡使用AOSP的系統測試,其他品牌的畫面可能略有不同。
安裝Scrcpy,Scrcpy 3.0需要以上版本。Android手機端則需要Android 10以上版本。
將手機插到電腦,啟動ADB偵錯
adb devices
- 嘗試連接到手機,建立一個解析度1920x1080的虛擬顯示器,DPI設定為240。如果不填寫解析度的參數,那就是自動依照手機解析度新增。
scrcpy --new-display=1920x1080/240
註:Android 15以上若出現Requires ADD_TRUSTED_DISPLAY permission to create a trusted virtual display.
錯誤,可能要先執行adb root
指令,Scrcpy才能建立虛擬顯示器。
之後,Scrcpy顯示的視窗就會是獨立的一個顯示器,而非Android手機的主畫面。
不知道是不是因為我的Xperia 10 V本來就不支援Type-C輸出螢幕,所以虛擬顯示器的畫面操作怪怪的。一次只能開啟一個APP,進入全螢幕,且不會顯示工作列,要開關APP得從手機端的多工界面操作。關閉虛擬顯示器的視窗之後,執行的APP也會關閉。
我們可以在建立虛擬顯示器的時候加上其他參數:
--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,不過也請考量手機硬體能否負荷。
- 需要開兩個Scrcpy實例,也就是說啟動一個虛擬顯示器:
scrcpy --new-display=1920x1080/240
- 之後,電腦開啟第二個終端機視窗,啟動另外一個虛擬顯示器:
scrcpy --new-display=1280x720/240
- 這裡我們讓兩個虛擬顯示器解析度不一樣,比較低解析度的跑需要吃效能的遊戲,降低手機端的負擔。
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好。
首先,安裝Termux Proot Debian
在手機端開啟Termux
在虛擬顯示器啟動Termux X11,進入全螢幕。
透過手機端輸入指令,啟動桌面環境。
6. 用MPV放大手機畫質#
Linux系統限定。參見Scrcpy + V4L2用法
虛擬顯示器的畫面也可以輸出到V4L2裝置做進一步操作,套用濾鏡放大手機遊戲的畫質。