private void startScreenShare(Intent data) {
startRXScreenCaptureService(data);
ScreenVideoEncoderConfig config = new ScreenVideoEncoderConfig();
config.maxBitrate = 1600;
mRTCEngine.setScreenVideoEncoderConfig(config);
// 如果在进入房间的时候设置了 isAutoPublishVideo = true,那么此步骤将直接开始屏幕共享。
// 否则,您需要调用 publishStreamVideo(true) 来开始共享屏幕。
mRTCEngine.startScreenCapture(ScreenMediaType.SCREEN_MEDIA_TYPE_VIDEO_AND_AUDIO, data);
private void startRXScreenCaptureService(@NonNull Intent data) {
Context context = Utilities.getApplicationContext();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
Intent intent = new Intent();
intent.putExtra(RXScreenCaptureService.KEY_LARGE_ICON, R.drawable.launcher_quick_start);
intent.putExtra(RXScreenCaptureService.KEY_SMALL_ICON, R.drawable.launcher_quick_start);
intent.putExtra(RXScreenCaptureService.KEY_LAUNCH_ACTIVITY, mHostActivity.getClass().getCanonicalName());
intent.putExtra(RXScreenCaptureService.KEY_CONTENT_TEXT, "正在录制/投射您的屏幕");
intent.putExtra(RXScreenCaptureService.KEY_RESULT_DATA, data);
context.startForegroundService(RXScreenCaptureService.getServiceIntent(context, RXScreenCaptureService.COMMAND_LAUNCH, intent));