基于WebRtc在Android端实现屏幕共享

1 篇文章 0 订阅
1 篇文章 0 订阅

注:本文默认你已经掌握了如何用WebRtc建立视频连接。如果没有,请参考https://www.jianshu.com/p/eb5fd116e6c8,这里将不再赘述。

第一步:向系统发起屏幕截取请求

if(Build.VERSION.SDK_INT < 21){
        showShortToast("您的手机不支持这个功能");
        return;
}
MediaProjectionManager manager = (MediaProjectionManager)getSystemService(MEDIA_PROJECTION_SERVICE);
if(manager == null){
       showShortToast("截屏服务不可用");
       return;
}
Intent intent = manager.createScreenCaptureIntent();
startActivityForResult(intent,REQ_REMOTE_HELP);

执行以上代码后,会出现弹窗提示用户要开始截屏,用户点击同意后,回调到onActivityResult。

第二步:用第一步得到的 Intent 创建VideoCapturer

//上一步会回调到这个方法。
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    if(requestCode == REQ_REMOTE_HELP && resultCode == RESULT_OK){
        captureIntent = data; //在这里保存data
    }
}

//创建VideoCapture
VideoCapturer videoCapturer = new ScreenCapturerAndroid(captureIntent, new MediaProjection.Callback() {
      @Override
      public void onStop() {
           super.onStop();
      }
});

第三步:创建视频源并初始化

VideoSource videoSource = peerConnectionFactory.createVideoSource(videoCapturer.isScreencast());

videoCapturer.initialize(surfaceTextureHelper, getApplicationContext(),videoSource.getCapturerObserver());

videoCapturer.startCapture(480, 640, 30);

其它过程与https://www.jianshu.com/p/505bb98aaea7 相同,请参考该文。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
要在C实现基于WebRTC的多用户协作,可以按照以下步骤进行: 1. 设置基本环境:在C,你需要搭建一个WebRTC应用程序的开发环境。这包括安装WebRTC库、使用适当的编程语言(如C++)进行开发,以及配置开发工具链。 2. 建立信令服务器:为了实现多用户之间的通信和协调,你需要设置一个信令服务器。这个服务器用于处理用户之间的连接建立、媒体协商和网络地址传递等任务。你可以选择使用开源的信令服务器,例如socket.io、WebSocket等。 3. 媒体流传输:使用WebRTC API,你可以实现音频和视频流的传输。你需要设置本地媒体流,获取摄像头和麦克风的音视频数据,并将其发送到远程用户。同时,你还需要接收远程用户发送的音视频流,并在本地进行解码和显示。 4. 数据通道传输:除了音视频流,WebRTC还提供了数据通道,用于实现用户之间的实时数据传输。你可以使用数据通道传输文本消息、文件等协作数据。 5. 多用户管理:为了实现多用户协作,你需要管理多个用户之间的连接和状态。你可以使用房间管理机制来组织用户,并确保每个用户都能够连接到正确的房间中。 6. UI和交互设计:在C实现多用户协作时,你还需要设计一个用户友好的界面,让用户可以方便地进行协作操作,例如共享屏幕、绘图、文档编辑等。 需要注意的是,WebRTC是一项复杂的技术,实现多用户协作需要深入了解WebRTC的原理和API,并具备相应的编程能力。如果你对WebRTC不太熟悉,可以参考官方文档、教程和示例代码来学习和实践。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值