V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wssy921
V2EX  ›  程序员

请教大家一个问题, Android 如何投屏到浏览器,可通过同一局域网的浏览器访问投屏内容并可以反向控制

  •  
  •   wssy921 · 2020-12-09 16:07:24 +08:00 · 2287 次点击
    这是一个创建于 1444 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是这样的,andrioid 端的 app 点击开始投屏,然后同一局域网,或者连接手机热点的笔记本,可以通过访问 app 开启的 server 的服务去访问, 例如 192.168.10.11:5555 这样可以访问到投屏内容,并且可以反向控制。

    因为之前对 android 和投屏相关的技术和协议没什么研究,不知道应该选用什么技术栈。 大概去 github 搜了下,有使用 cling, webrtc 等技术的,还有直接使用 DLAN,Miracast 等协议进行开发的。 但是因为不太确定终端是否能支持 DLAN, Miracast 等协议。 所以想用浏览器来接收,有没有大佬可以介绍一下相关的技术方向。

    5 条回复    2020-12-10 10:21:49 +08:00
    narmgalaxy
        1
    narmgalaxy  
       2020-12-09 16:20:06 +08:00
    你可以研究一下 scrcpy
    mgrddsj
        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 是投视频 /图片 /音频的协议,不适合屏幕镜像。
    ChenXuting
        3
    ChenXuting  
       2020-12-09 23:29:12 +08:00 via Android
    酷安“文件闪送”,实现了除控制以外的功能。
    ChenXuting
        4
    ChenXuting  
       2020-12-09 23:30:07 +08:00 via Android
    wssy921
        5
    wssy921  
    OP
       2020-12-10 10:21:49 +08:00
    @mgrddsj 解释的很想写,学到了很多。 不过感觉这样实现下来,代价还是比较大。 我继续研究一下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:34 · PVG 02:34 · LAX 10:34 · JFK 13:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.