安卓多台手机之间屏幕同步与pc通过adb控制手机

时间:2021-01-19 14:33:52

最近有这样一个需求,多台手机之间,手机B,手机C,手机D全部显示手机A的屏幕或摄像头画面。

一开始为了快速实现,方案为手机A截屏,然后用socket发送给其余手机,效果实现,但是非常卡顿。

后来,想用流实现其功能,类似于直播的感觉。但是无奈流媒体服务器搭建不太熟悉。

最后,改用实时获取h264流,然后实时通过socket发送。已实现

实现步骤:

1获取MediaProjection对象:

mMediaProjectionManager = (MediaProjectionManager)getSystemService(Context.MEDIA_PROJECTION_SERVICE);
Intent intent = mMediaProjectionManager.createScreenCaptureIntent();
startActivityForResult(intent, REQUEST_CODE);
2.开启屏幕录制线程 ScreenRecorderThread

2.1创建编码器

2.2录制视频

2.3发送(先发送sps,pps)


后来又有一个需求,让接收的屏幕的手机控制发送屏幕的手机

方案:

1.获取当前手机屏幕大小,在和发送屏幕手机的手机屏幕大小做一下比例。确定点击坐标,点击滑动动作

2.发送给服务器,让服务器根据数据转换成adb控制手机的语句

3.手机通过usb与pc相连,pc执行adb语句,手机受到虚拟触控