Client SDK with immediate screen share

Would the following use-case be possible to implement using the Client SDK:

  1. User enters meeting number and passcode into the alert.
  2. Wait for a successful meeting join.
  3. On successful join, the app starts sharing a video stream (through a UIView). Because of the aspect ratio, regular replay kit screen sharing is unsuitable. The video stream is not displayed on the iPhone screen.

Is it possible to implement this without using the the SDK view controller? In other words, I want to implement this without using the SDK user interface. The reason is because I want to share content into a Zoom meeting.

I think all the delegates to do this are available. I am not interested in displaying video or using the camera in the app.

Zoom team…? @Michael_Condon @Carson_Chen

Hey @tingstam,

Thanks for using the dev forum!

If the Zoom ViewController is not desired you can implement a Custom Meeting UI:

In regards to sharing, you can share just a UIView in your meeting using appShareWithView in MobileRTCMeetingService however, do to its optimization limitations we do not recommend using it for a video stream.

If aspect ratio is the concern with replaykit: You can implement a Custom Meeting UI, and create a MobileRTCActiveShareView to render the sharing content. MobileRTCActiveShareView inherits from MobileRTCVideoView, which allows you to set your video aspect. It may be worth trying this with the replaykit method of sharing to see if that helps in your situation.

We also just recently announced a new sdk, that allows for full customization of your video streaming experience: no default UI, access to raw video/audio data, and no mention of Zoom anywhere. It may be worth exploring this SDK instead for your implementation.

Please let me know if you have any other questions.

Hi Michael!

My implementation strategy will be

  1. Get appShareWithView working.
  2. Implement custom meeting UI
  3. Use ReplayKit and use MobileRTCActiveShareView to render the content.

Regarding appShareWithView, I use the following code to try to display the splash screen when tapping “Share Content”->“Screen”.

- (void)onClickShareScreen:(UIViewController*)parentVC {
    MobileRTCMeetingService *ms = [[MobileRTC sharedRTC] getMeetingService];
    if (ms) {
	    NSLog(@"Starting share");
	    [ms appShareWithView: self.mainVC.splashVC.view];

appShareWithView is called but nothing happens. What else do I need to do?

On this link, it is mentioned that I need to use a custom UI to screen share with MobileRTC. Is that true even if I just want to share a single UIView (in this case the splash screen)?

The new SDK looks amazing. We need to stream to existing Zoom meetings, and as I understand the new SDK is incompatible with regular Zoom meetings. That the purpose of the new SDK is to build a white-label video product.

Hey @tingstam,

When sharing this way with the default UI it is possible, but not recommended.The view is not rendered over the default UI and must exist in the view hierarchy before sharing it, so it is very difficult to debug what is going on when there are issues. You must also set isAppShare to true and call startAppShare before attempting to share the view. Sometimes it takes a little while for the view to show up in the meeting as well. If you download this sample application: there is an example of sharing using appShareWithView, however it only demonstrates the steps in a customMeeting UI implementation.

Let me know if you have any other questions.