Screen share not working with SDK 29

When using the latest version of the Zoom SDK on Android SDK 29 screen sharing isn’t working. All that displays is a black screen. The same code on Android SDK 28 works without issue.

Hi jack,

Thanks for the post. I tried to reproduce this issue using Android SDK 29 with our demo app and I am able to do screen sharing. Are you getting any errors? Could you share your log so we can further investigate in this? Are you able to reproduce this with our demo app?

Thanks!

Sorry for the late reply. I’m not seeing anything in the logs. I tried to reproduce in the demo app and the demo app is working. I’ll keep digging to see if I can figure out what’s different between my app and the demo app.

Hi Jack,

Thanks for the reply. Sure, let me know if you have any questions, we are here to help. :smiley:

Thanks!

Hello ,
Even I am facing issue with screen share. I am using custom ui.
Scenario :
First time screenshare is working for me . Once i logout and log in or internet disconnected and reconnect my screenshare is blacked out . During this black out i am not receiving “onShareUserReceivingStatus” callback. but receiving only onShareActiveUsercallback. not sure whether this is related to the issue. but for the headup i have mentoned here. Kindly help me out asap.

Code snippet:
//adding listener on create
ZoomSDK.getInstance().inMeetingService.inMeetingShareController.addListener(this)

// override fun onShareActiveUser(shareUserId: Long) {
if (shareUserId == -1L) {
removeScreenShareVideo()
}else{
addScreenShareVideo()
}
}
fun addScreenShareVideo(){
val renderInfo = MobileRTCVideoUnitRenderInfo(0, 0, 100, 100)
var screenShareMobileRTCVideoView: MobileRTCVideoView? = MobileRTCVideoView(activity)
screenShareMobileRTCVideoView!!.getVideoViewManager().removeAllVideoUnits()
var screenShareVideoViewMgr: MobileRTCVideoViewManager? = screenShareMobileRTCVideoView?.getVideoViewManager()
if (screenShareVideoViewMgr != null) {
Log.d(TAG, “adding screenshare”)
screenShareVideoViewMgr?.addShareVideoUnit(inMeetingService?.activeShareUserID()!!, renderInfo)
videoView.removeAllViews()
videoView.addView(screenShareMobileRTCVideoView)
screenShareMobileRTCVideoView?.onResume()
}
fun removeScreenShareVideo()
{
if (screenShareVideoViewMgr != null) {
screenShareVideoViewMgr?.removeShareVideoUnit()
screenShareVideoViewMgr?.removeAllVideoUnits()
}
}
//removing listener on destroy
ZoomSDK.getInstance().inMeetingService.inMeetingShareController.removeListener(this)

Thanks

Hi @jaibhuvaneshwari.pet, sorry to hear you’re running into this issue with screensharing. I’ve tried reproducing in the demo app, but did not see any issues. My steps taken were:

  1. Join meeting with number/password
  2. Share screen
  3. Stop sharing
  4. Turn off network connection
  5. Reconnect
  6. Attempt to share screen again

Both screen shares were successful with this flow. I was unable to reproduce using both the custom UI and the default UI in our demo app. Can you confirm that these steps are correct?

Thanks!

@jon.zoom Thanks for your reply.
Even i am not facing this issue in sample app.
Actually my use case is different. I will not share screen from my android mobile.
I will be just view the others screen who has shared in my mobile.
I am not using MobileRTCShareView instead i am using MobileRTCView itself to show the shared screen.
Could you please redirect to your technical team.

Thanks ,
Jai

Hi @jaibhuvaneshwari.pet, thank you for clarifying. I have some follow-up questions to better understand your use case before I am able to assist you.

Actually my use case is different. I will not share screen from my android mobile.
I will be just view the others screen who has shared in my mobile.

Are you performing the previously mentioned steps (disconnecting/reconnecting) on the mobile device or on the device that is sharing?

I am not using MobileRTCShareView instead i am using MobileRTCView itself to show the shared screen.

Can you please provide some code from your implementation displaying how you’re setting up this view and responding to the screnshare callbacks?

Thanks!

“Are you performing the previously mentioned steps (disconnecting/reconnecting) on the mobile device or on the device that is sharing?”

for the above question , I am disconnecting and reconnecting from the mobile device where i am just viewing the screen share. I am not sharing from this device.

“Can you please provide some code from your implementation displaying how you’re setting up this view and responding to the screnshare callbacks?”
Code snippet:
//adding listener on create
ZoomSDK.getInstance().inMeetingService.inMeetingShareController.addListener(this)

// override fun onShareActiveUser(shareUserId: Long) {
if (shareUserId == -1L) {
removeScreenShareVideo()
}else{
addScreenShareVideo()
}
}
fun addScreenShareVideo(){
val renderInfo = MobileRTCVideoUnitRenderInfo(0, 0, 100, 100)
var screenShareMobileRTCVideoView: MobileRTCVideoView? = MobileRTCVideoView(activity)
screenShareMobileRTCVideoView!!.getVideoViewManager().removeAllVideoUnits()
var screenShareVideoViewMgr: MobileRTCVideoViewManager? = screenShareMobileRTCVideoView?.getVideoViewManager()
if (screenShareVideoViewMgr != null) {
Log.d(TAG, “adding screenshare”)
screenShareVideoViewMgr?.addShareVideoUnit(inMeetingService?.activeShareUserID()!!, renderInfo)
videoView.removeAllViews()
videoView.addView(screenShareMobileRTCVideoView)
screenShareMobileRTCVideoView?.onResume()
}
fun removeScreenShareVideo()
{
if (screenShareVideoViewMgr != null) {
screenShareVideoViewMgr?.removeShareVideoUnit()
screenShareVideoViewMgr?.removeAllVideoUnits()
}
}
//removing listener on destroy
ZoomSDK.getInstance().inMeetingService.inMeetingShareController.removeListener(this)

@jon.zoom Kindly let me know if i am missing or doing something in a wrong way.

Thanks.

@jaibhuvaneshwari.pet, thank you for providing that.

You mentioned in an earlier post that you’re seeing onShareActiveUser called during this, but not onShareUserReceivingStatus. How many times are you seeing onShareActiveUser called after you disconnect/reconnect? And can you confirm that onShareUserReceivingStatus is calling during the initial share, but never called again after reconnecting?

Thanks!

MeetingService meetingService1 = ZoomSDK.getInstance().getMeetingService();
JoinMeetingOptions options = new JoinMeetingOptions();
options.no_invite = true;
options.no_audio=true;
options.no_video=true;
options.no_bottom_toolbar = true;
options.no_dial_in_via_phone = true;
options.no_dial_out_to_phone = true;

            //meetingService.addListener(meetingServiceListener);

            JoinMeetingParams params1 = new JoinMeetingParams();
            //params.displayName = "User Name";
            params1.meetingNo = "81572630729";
            params1.password = "vhtTBa";
            meetingService1.joinMeetingWithParams(MainActivity.this, params1, options);
            //InMeetingService inMeetingService = ZoomSDK.getInstance().getInMeetingService();
            meetingService1.addListener(new MeetingServiceListener() {

                @Override
                public void onMeetingStatusChanged(MeetingStatus meetingStatus, int i, int i1) {
                    switch (meetingStatus) {
                        case MEETING_STATUS_CONNECTING:
                            // Meeting is connecting
                            break;
                        case MEETING_STATUS_INMEETING: {

// InMeetingService inMeetingService = ZoomSDK.getInstance().getInMeetingService();
// InMeetingShareController shareController = inMeetingService.getInMeetingShareController();
MediaProjectionManager manager = (MediaProjectionManager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
if (manager != null) {

                                Intent screenCaptureIntent = manager.createScreenCaptureIntent();
                                //startActivityForResult(screenCaptureIntent,REQUEST_SCREEN_CAPTURE_PERMISSION);
                                inMeetingService = ZoomSDK.getInstance().getInMeetingService();
                               shareController = inMeetingService.getInMeetingShareController();
                                shareController.startShareScreenSession(screenCaptureIntent);



                            }
                   i have problems in this code for share screen.