需求是这样的,andrioid 端的 app 点击开始投屏,然后同一局域网,或者连接手机热点的笔记本,可以通过访问 app 开启的 server 的服务去访问, 例如 192.168.10.11:5555 这样可以访问到投屏内容,并且可以反向控制。
因为之前对 android 和投屏相关的技术和协议没什么研究,不知道应该选用什么技术栈。 大概去 github 搜了下,有使用 cling, webrtc 等技术的,还有直接使用 DLAN,Miracast 等协议进行开发的。 但是因为不太确定终端是否能支持 DLAN, Miracast 等协议。 所以想用浏览器来接收,有没有大佬可以介绍一下相关的技术方向。
1
narmgalaxy 2020-12-09 16:20:06 +08:00
你可以研究一下 scrcpy
|
2
mgrddsj 2020-12-09 19:07:59 +08:00 1
楼上提到的 scrcpy 是通过 ADB 来传输的(要么有线,要么开启无线 ADB,得在电脑上装 ADB,而且目前没有在浏览器跑的方案。),好处是可以在电脑上控制手机。
我用过最接近楼主描述的是 Screen Stream over HTTP ( https://play.google.com/store/apps/details?id=info.dvkr.screenstream )(GitHub: https://github.com/dkrivoruchko/ScreenStream )。这个 app 可以实现通过浏览器串流手机屏幕内容。用的是 MJPEG 。不过它目前还不支持电脑控制手机。不过既然是开源的,应该可以用 Android 7.0+ 的无障碍服务来实现模拟点击。 不过以上两者都不支持声音传输。如果要传输设备音频,可以尝试自己实现。Android 端需要 Android 10+,原理参考 sndcpy ( https://github.com/rom1v/sndcpy )。 而 Miracast 的话,则对发送、接收双端都有硬件要求。Android 4.4 - Android 5.1 都自带 Miracast 支持( Google 在 Android 6.0 的源码里面移除了它,但是部分国内厂商依然在他们的定制 ROM 里面保留了这个功能)一般只要支持 WiFi 的 Android 机的硬件都可以支持 Miracast 。而 PC 端的话,Windows 10 自带 Miracast 接收器 app “连接”。但是部分 WiFi 网卡不支持它,你可以在系统设置-系统-投影到此电脑里面打开接收功能。但需要注意的是,Win 10 自带这个接收器有个长久没修的 bug,“请求投影到此电脑”和“要求 PIN”必须设置为“每次”才能正常连接使用。Miracast 本身应该是支持在接收端控制发送端的,但是我实际经验上 Android 投屏到 Windows 时没有成功远程控制过。Miracast 的好处是支持 Android 设备音频串流。 DLNA 是投视频 /图片 /音频的协议,不适合屏幕镜像。 |
3
ChenXuting 2020-12-09 23:29:12 +08:00 via Android
酷安“文件闪送”,实现了除控制以外的功能。
|
4
ChenXuting 2020-12-09 23:30:07 +08:00 via Android
|