App Crash happens

Hi @cocavo

We have found out the possible cause of the crash, but we did not reproduce the crash under our sample. We hope you can provide a video to help confirm the problem so as to fix it in the next version.

Thank you so much for helping us find this crash.

Hi @carson.zoom

Thanks for the reply. I have added the bridge header then i can access the MobileRTCScreenShare class.

Now I have following issues while using MobileRTCScreenShare.

  1. I have added the Broadcast extension and it’s created the SampleHandler class but the problem is SampleHandler class not getting called:frowning:. While I tap on the start broadcasting. I don’t why it’s not called ?

NOTE: I followed this link for Share screen process - https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/mastering-zoom-sdk/in-meeting-function/zoom-meeting-ui/screen-share

  1. Is there any possible to check programmatically in zoom SDK whether the device is enabled the Screen recording option in their device control center ?

Screen shot for Sample Handler

and I have set the context for group id like below

let context = MobileRTCSDKInitContext()
context.domain = Constants.Keys.Zoom_Domain
context.enableLog = true
context.appGroupId = “group.com.zoomcall.app”
MobileRTC.shared().initialize(context)

screen shot for start broadcasting page:

Also one more thing, I have disabled the Screen recording option in my device. I can not see the following views while I start sharing the page. Those are,

Please suggest me what did wrong and why Sample Handler class methods not getting called and How to show the above on screen instructions ? .

Thanks!

Hi @carson.zoom

did you get any info ? it’s really urgent for me. Hope you understand :slight_smile:

Thanks!

@carson.zoom, @Murray_Li

We are able to reproduce this issue on your MobileRTCSample app on iOS 13.x simulators and devices. You need to setup a webinar, not a regular meeting. This webinar should contain at least two panelists. In the sample app disable a drive mode as disableDriveMode(true) of MobileRTCMeetingSettings. Then run the app and join to the webinar as an attendee. When one of the panelists turns on the video - the app crashes.

Hi saroroo123,

Thanks for the reply and pardon the late response. Regarding the screen share not working issue, I have forwarded to the engineering team for further investigation. Will update you shortly.

Regarding the question:

Our SDK does not have any interfaces to detect that. Maybe it needs to use some system interfaces to check that.

Will get back to you shortly regarding your other questions. Thanks!

Hi cocavo,

Thanks for the reply. I will forward this to the engineering team for further investigation and get back to you. Thanks!

Hi @carson.zoom

Thanks for the reply. I will be waiting for to get my answers :slight_smile:

Thanks!

Hi @carson.zoom,

did you find anything regarding above clarifications ? it’s urgent for me to complete the share screen process. So please share your thoughts as soon as possible.

Thanks!

Hi saroroo123,

Thanks for waiting and pardon the late response. The recent emerging demand for support is squeezing our bandwidth and causing a little bit of delay. Sorry about that.

Regarding the screen share not working issue, please double-check and make sure the MobileRTCScreenShareServiceDelegate is extended in your class and the proper delegate callbacks are implemented. Also, make sure your group ID is well configured with Apple and it is associated with your developer account. Don’t forget to enter appGroupID when initializing the SDK(https://github.com/zoom/zoom-sdk-ios/blob/master/MobileRTCSample/MobileRTCSample/SDKPresenters/how_to_init_auth_sdk/how_to_init_sdk/SDKInitPresenter.m#L25) and initializing the broadcast extension(like what you are doing in the screenshot).

You will also need to implement the callback onClickShareScreen so that the screen sharing picker will be able to pick the broadcasting session when the broadcasting starts.

Here is a code snippet that I got the extension working(Based on the code you were sharing):

class SampleHandler: RPBroadcastSampleHandler, MobileRTCScreenShareServiceDelegate {
    
    private var screenShareService:MobileRTCScreenShareService?;
    
    override init() {
        super.init();
        let service = MobileRTCScreenShareService();
        self.screenShareService = service;
        self.screenShareService?.appGroup = "group ID";
        self.screenShareService?.delegate = self;
    }
    
    deinit {
        screenShareService = nil;
    }

    override func broadcastStarted(withSetupInfo setupInfo: [String : NSObject]?) {
        // User has requested to start the broadcast. Setup info from the UI extension can be supplied but optional.
        self.screenShareService?.broadcastStarted(withSetupInfo: setupInfo);
    }
    
    override func broadcastPaused() {
        // User has requested to pause the broadcast. Samples will stop being delivered.
        self.screenShareService?.broadcastPaused();
    }
    
    override func broadcastResumed() {
        // User has requested to resume the broadcast. Samples delivery will resume.
        self.screenShareService?.broadcastResumed();
    }
    
    override func broadcastFinished() {
        // User has requested to finish the broadcast.
        self.screenShareService?.broadcastFinished();
    }
    
    override func processSampleBuffer(_ sampleBuffer: CMSampleBuffer, with sampleBufferType: RPSampleBufferType) {
        self.screenShareService?.processSampleBuffer(sampleBuffer, with: sampleBufferType);
    }
    
    func mobileRTCScreenShareServiceFinishBroadcastWithError(_ error: Error!) {
        self.finishBroadcastWithError(error);
    }
}

Hope this helps. Thanks!

Hi @carson.zoom

Thanks for the info. I followed your comments and still it’s not working. Please check this URL and share your thoughts.

Video URL: https://vimeo.com/405370442

Note: Please watch the video and my audio comments.

Another thing that I need to tell you, Once I started the broadcast, all active members of current meeting can see my shared screen but the problem is below,

  1. Meeting is going on
  2. I have started to share my screen
  3. Now I just tap the iPhone home button and app went background (But meeting is going on)
  4. Now the share screen process not working, Once I back to app foreground mode and share screen process working good
  5. So, seems share screen process not working in while app went background

@carson.zoom Please check this and share your thoughts. it’s really urgent one for me to implement.

Thanks :slight_smile:

Hi saroroo123,

Thanks for the info and the video. It looks like the broadcast extension is working(that’s great!:slight_smile:) and the issue you are facing is the breakpoints and the logs are not being printed in the console. This is because the broadcast extension is running as a separate process so you will need some configurations in Xcode in order to debug the extension. Below are some contents that I found online that could be helpful:

Regarding the screen sharing not working the background issue, could you double-check and make sure the following option is checked in your app?

Without this, our app will be blocked in the background so it will not receive the sharing data.

Hope this helps. Thanks!

Hi @carson.zoom

Thanks for the info. I am glad to tell you, Share screen was working fine in my end. Thanks a lot for your support. :slight_smile:

Now, I have another few clarifications. Those are,

  1. is there possible to hide this view from meeting window once user start sharing the screen ?

  2. I need to enable remote control access in my end and Also I have reviewed this https://github.com/zoom/zoom-sdk-ios/blob/master/MobileRTCSample/MobileRTCSample/CustomMeeting/RemoteShareViewController.m and your SDK sample code. But it’s seems those are used for custom meeting UI. I am using zoom SDK default UI. So please tell me how to enable remote control access in zoom default UI ?

  3. Could you provide documentation for enabling remote control in zoom SDK default UI ?

  4. Both host and participant’s are can able to allow remote control access ? OR is there any restriction for these ?

Thanks!

Hi saroroo123,

Glad to hear that it is working. Regarding your questions:

No, this view cannot be hidden.

The remote control is only available on iPad(iPhone’s screen is too small for remote control) and it could only be used under the following circumstances: The desktop client starts sharing, and then give the remote control permission to the iPad user. The iPad user cannot start remote control by itself. Thus it is a passive feature in iOS SDK. In Zoom default UI, you do not need to do anything, if the desktop client provides the remote control permission to the iPad user, the remote control will automatically start.

Hope this helps. Thanks!

Hi @carson.zoom

Thanks for the reply. Another few clarifications,

  1. is there possible to set user_id OR id for participants while start/join the meeting in zoom iOS SDK?

please see the image

Thanks!

Hi saroroo123,

Below are the available fields that you could use when joining a meeting:

extern NSString* _Nonnull kMeetingParam_UserID;
extern NSString* _Nonnull kMeetingParam_UserToken;
extern NSString* _Nonnull kMeetingParam_UserType;
extern NSString* _Nonnull kMeetingParam_Username;
extern NSString* _Nonnull kMeetingParam_MeetingNumber;
extern NSString* _Nonnull kMeetingParam_MeetingPassword;
extern NSString* _Nonnull kMeetingParam_ParticipantID;
extern NSString* _Nonnull kMeetingParam_IsAppShare;
extern NSString* _Nonnull kMeetingParam_WebinarToken;
extern NSString* _Nonnull kMeetingParam_NoAudio;
extern NSString* _Nonnull kMeetingParam_NoVideo;
extern NSString* _Nonnull kMeetingParam_VanityID;

Hope this helps. Thanks!

Hi @carson.zoom

Thanks for reply. this is really very helpful to me. Thank you :slight_smile:

Glad to be helpful. Happy zooming! :smiley:

Hi @carson.zoom,

Our client still reporting one issue in zoom call. We already discussed about that issue. The issue was

→ Our client said, we need to fix this issue. The exact problem is video not get enabled while device is locked state. So we need to start the video by manually.

So could you please tell me is there any alternate way to fix this issue ? and also please answer the following questions:

  1. is there possible to start/enable video manually ?
  2. is there possible to refresh/reload the meeting page ?
  3. is there possible to reset video section ? (like you already have the resetaudio function)

Thanks!

Hi @carson.zoom,

did you got any idea about my questions ?

Hi @saroroo123,

Thanks for the reply. Are you facing issues when integrating Zoom SDK with CallKit? Or just the video is not enabled while the screen is locked?

I believe the video is turned off when the screen is locked is expected behavior. This is to protect privacy. The behavior that I am seeing right now is:

  1. When I am in the meeting with video on, then lock the screen, the video is off
  2. When I unlocked the screen, the video turns back on again automatically.

So I don’t think it is possible to force the video to be on when the screen is locked. If I misunderstood your questions, could you provide some steps of how could I reproduce this with our demo so that we could better help?

Thanks!