美文网首页WebRTC
基于WebRTC实现Web端共享Android屏幕

基于WebRTC实现Web端共享Android屏幕

作者: jeffiano | 来源:发表于2018-04-03 18:40 被阅读225次

    由于项目需求,前段时间了解了WebRTC相关技术,项目需要实现一个屏幕共享端功能,即在Web 端能够同步查看远端Android机器的屏幕画面。在Github上搜索了一圈之后,终于找到两个可以直接利用的项目,一个是ProjectRTC,另一个就是Google官方的AppRTC。
    最终的实现方案是基于这两个开源项目的结合,ProjectRTC项目结构较为轻量,信令交互流程简洁清晰,但是只实现了摄像头图像推流,使用的WebRTC库也比较老旧,而AppRTC项目结构相对比较复杂,服务器端搭建起来比较麻烦,但是使用的库是比较新的,并且有录屏推流相关的API。
    所以最终方案为:利用ProjectRTC的基本结构和信令交互流程,替换其中的WebRTC库文件(jar和so文件),提取AppRTC项目中录屏推流部分相关代码来实现功能。
    Github上目前有以下几个基于AppRTC的Android端Demo源码编译好的AndroidStudio工程,运行APK即可测试录屏推流功能(科学上网)。

    两个项目整合之后的项目源码我传到了Github上,仓库地址:https://github.com/Jeffiano/ScreenShareRTC,这个项目和ProjectRTC中的Server端代码搭配使用(需要搭建nodejs环境),在Android代码的string.xml中修改host地址即可,希望对其他的小伙伴有点帮助。

    相关文章

      网友评论

      • 6d09e631c17e:楼主你好!网络方面需要翻墙吗?
        iceServers.add(new PeerConnection.IceServer("stun:23.21.150.121"));
        iceServers.add(new PeerConnection.IceServer("stun:stun.l.google.com:19302"));
        IceServer 中的stun需要翻墻才能连接吗? 在线等回答,谢谢!
        jeffiano:是的
      • ChineseBoy:PeerConnectionFactory.initializeAndroidGlobals(mContext, true, true,
        params.videoCodecHwAcceleration); 看到了这个,肯定是用的很老的了
      • ChineseBoy:您好,请问下,libjingle_peerconnection_so.so这个库是最新的么?
        jeffiano:so库是从AppRTCDemo里面考过来的
      • 仁伯:有iOS屏幕流通过webrtc推送吗
        jeffiano:木有:flushed:

      本文标题:基于WebRTC实现Web端共享Android屏幕

      本文链接:https://www.haomeiwen.com/subject/rujchftx.html