Android

通过阅读本文,您可以了解到屏幕分享的使用方法。

注意

1)从应用安全考虑,移动端默认未开通屏幕共享功能。如果您想开通移动端屏幕共享功能,请提交工单申请

2)RTC Android 3.0 SDK 内已经实现了屏幕共享权限的申请,因此在集成使用屏幕共享功能的业务代码中无需再次申请此权限,否则可能会导致多次屏幕共享权限申请确认。

推流端

启动屏幕分享。

// 配置屏幕分享推流
//获取DingRtcEngine实例
DingRtcEngine mRtcEngine = DingRtcEngine.create(getApplicationContext(),"");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
  startForegroundService(sharingService);
}
ret = mRtcEngine.startScreenShare();
.....
  1. 推流后通过回调判断屏幕共享是否发布成功。

    public void onScreenSharePublishStateChanged(DingRtcEngine.DingRtcPublishState oldState ,
                                                 DingRtcEngine.DingRtcPublishState newState,
                                                 int elapseSinceLastState, String channel);

    参数

    类型

    描述

    oldState

    DingRtcPublishState

    之前的推流状态。

    newState

    DingRtcPublishState

    当前的推流状态。

    elapseSinceLastState

    int

    状态变更时间间隔。单位:毫秒。

    channel

    String

    当前频道ID。

  2. 停止屏幕分享。

    int ret = mRtcEngine.stopScreenShare();;
  3. 停止屏幕共享后通过回调判断屏幕共享是否取消发布成功。

    public void onScreenSharePublishStateChanged(DingRtcEngine.DingRtcPublishState oldState ,
                                                 DingRtcEngine.DingRtcPublishState newState,
                                                 int elapseSinceLastState, String channel);

    参数

    类型

    描述

    oldState

    AliRtcPublishState

    之前的推流状态。

    newState

    AliRtcPublishState

    当前的推流状态。

    elapseSinceLastState

    int

    状态变更时间间隔。单位:毫秒。

    channel

    String

    当前频道ID。

订阅端

订阅端用户可通过自动或手动方式订阅推流端屏幕分享视频流,并设置对应View显示,详情请参见DingRtcEngine接口