如何实现监控手机屏幕?(附源码)安卓手机桌面「如何实现监控手机屏幕?(附源码)」

   日期:2025-01-28    作者:4mowy 移动:http://g8akg8.riyuangf.com/mobile/quote/2024.html

  最近做了一个项目,里面有涉及到监控PC桌面和监视手机屏幕的功能,客户需要在PC电脑上和安卓手机上都能够观看对方的屏幕,而对方的设备既可以是PC电脑,也可以是安卓手机。

       为了便于以后复习,我把这个屏幕监控的功能单独提出来做了个Demo名为ScreenMonitor来记录备忘,顺便也分享给大家。

       该Demo一个包括3个项目:服务端、PC客户端、安卓客户端。

       文末除了将ScreenMonitor整个项目的源码提供下载,也专门给出了可以直接部署的版本,供大家直接部署测试。

       接下来,我将给大家介绍整个功能的实现原理和代码逻辑,大家可以从文末下载源码后,对照源码再来看下面的介绍就会更清晰些。  

  服务端主要用来转发数据(被监控的屏幕图像的编码数据),并不涉及其它复杂的业务逻辑。

       这个实现起来很简单,只需要几句代码就OK,它主要做的就是将客户端的消息的处理与数据的转发。这里不做过多的介绍,其关键核心代码只有一句,就是创建OMCS多媒体服务器实例。 

      第一个参数是提供服务的TCP端口,第二个参数用于验证登录的用户帐号密码。服务端运行界面如下所示:

    

  客户端中我们也分为了2种身份:控制端、被控端

  

  我们在登录时,我们需要初始化多媒体管理器 来连接服务端进行通信,其实也很简单,我们也只需要调用一句话就OK。 

   

  实现中主要是用到了DesktopConnector这个自定义控件,我们也只需简单的调用一个BeginConnect 方法就可以直接连接到对方桌面。将控件还提供了2个事件 ConnectEnded、Disconnected 来知道当前连接的结果和状态 

   以下为在PC端远程观看手机屏幕的截图: 

    

   

    安卓客户端就与PC客户端的实现原理差不多了,只是其中一些细节不一样而已

    安卓端同样也是分为2种身份:监控端、被控端

    

    同PC客户端一样我们也要初始化多媒体管理器 来连接服务端进行通信 

     

   这里我们用到了一个自定义组件 DesktopSurfaceView 用来显示对方桌面的图像 ,我们通过桌面连接器 DesktopConnector 去连接对方的桌面将获取的桌面图像数据用于该组件来显示

  下图为手机监控PC桌面 

   

   核心点在采集本手机的整个桌面的图像,这一点在OMCS框架中已经为我们处理好了,我们只是需要设置一下相关权限来允许录制屏幕即可,剩下的事情都可以交给omcs内部去处理了。 

  当控制方请求观看安卓的桌面时,被控端会弹出如下权限申请提示,点击“立即开始”对方就可以开始采集屏幕并将数据发送给 控制方用于显示。(若勾选了始终允许分享屏幕 的选项,之后控制端请求访问该被控端时就不会再次弹出权限的对话框了,可直接看得到该屏幕)

   

1. 项目源码下载 ScreenMonitor.rar

2. 部署版本下载

 

另外:GGTalk V7.0 已于2020.09.30发布,全新的 服务端+PC端+Android端 源码,快来下载吧!


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号