VirtualDisplay 配合 scrcpy 简单实现多窗口镜像
- 添加了广播操作
先是在B站看到了这个视频
其中实现的"同时使用多个应用"引起了我的注意
然而我主力 ArchLinux up 又没写 Linux 端还没开源
无奈只能想办法自己动手解决
但难点在于如何让应用跑在别的屏幕上
经过一番艰难的搜索后 找到了
https://source.android.com/devices/tech/display/multi_display
https://github.com/android/media-samples/tree/main/ScreenCapture
经过简单的修改ScreenCaptureFragment.java
182c182
< DisplayManager.VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
---
> DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
实现了
1.应用通过MediaProjection
创建VirtualDisplay
记录displayID
mediaProjection.createVirtualDisplay(
name, width, height, DisplayMetrics.DENSITY_DEFAULT,
DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC,
surface, null, null)
2.adb
使应用在虚拟显示屏上启动
adb shell am start-activity --display $displayID $intent
3.scrcpy
镜像虚拟屏幕
scrcpy --display $displayID