ZoomSDKError 4 on UI functions

Hey @tmiskiew,

Jon is currently out, so I will be taking over this thread until he returns.

Within ZoomSDKMeetingUIController, there are various interfaces that may be useful to you. You can use getWallViewPageInfo to get page info of the wall view, and showPreOrNextPageWallView to navigate through it.

Unfortunately there are not callbacks to alert of these buttons being pressed or the current state. However, you can control these programmatically with these functions in ZoomSDKMeetingUIController

  • (ZoomSDKError)switchFloatVideoToMinimizeMode;
  • ZoomSDKError)switchFloatVideoToWallMode;
  • (ZoomSDKError)switchFloatVideoToActiveSpeakerMode;
  • (ZoomSDKError)switchFloatVideoToGalleryMode;

Thanks!
Michael

Hey @j_a_z_z,

Unfortunately, there are not currently interfaces for this.

This is only possible if the user is sharing.

To be alerted that someone started sharing you can use onSharingStatus:User:

Thanks!
Michael

@Michael_Condon showPreOrNextPageWallView is not working. Itā€™s for the gallery view only.

This is NOT the same as the one I asked for. May I ask you to check with engineering (feel free to use the screenshots I provided)? Shall the interfaces be still not available may you please create a feature request for us?

With regards to those switchFloat* buttons I can control them, yes. But I want to show the correct current state to the user and without a call like that I canā€™t. Can you add it by any chance?

Hey @Michael_Condon
Thanks for your response, Can you please share the code on how can I assign my object to this delegate.

I tried using below code to get the user ids, who are sharing screen, but the ids it returns are different and they are not matching participatnt IDs.

self.sdk.getMeetingService()?.getASController()?.getShareSourceList()

@tmiskiew,

My apologies, it looks like I misinterpreted what that feature did. I will submit feature requests for both of these (if we do not already have them).

Thanks!
Michael

Hey @j_a_z_z,

To get the userIDā€™s of the users who are actively sharing, you can call - getShareSourceList from the ZoomSDKASController.

To be alerted that someone started sharing you can use - onSharingStatus:User:

To assign your object as a delegate you would call:

ZoomSDKMeetingService* meetingService = [[ZoomSDK sharedSDK] getMeetingService];
if(meetingService)
{
let shareController = [meetingService getASController];
shareController.delegate = self;
}

Thanks!
Michael

Hey @Michael_Condon

Thanks for your response, The documentation references you shared are not for Mac OS SDK.
Can you please update them.

Also, Please review these two posts from me, they are related to same topic.

Hi @tmiskiew and @j_a_z_z,

Apologies for the mixup in platforms earlier! I can assure you that Michael has properly submitted the feature request for macOS and not Android as the links suggest. :slightly_smiling_face:

I will be sure to give you an update once we have more information! Also, since there is a lot of information in this thread nowadays, please let me know if there is any additional action needed that I may have overlooked (other than the two feature requests Michael submitted last week).

Thanks!

Hey @j_a_z_z,

I apologize for my mixup in platform documentation links. I have since updated those links. Please let us know if you have any other questions there.

Thanks!
Michael

@Michael_Condon which links did you update? When I click on your links I still see android documentationā€¦

Hey @tmiskiew,

Here are the links that have been updated:
getShareSourceList
onSharingStatus:User:

These are navigating to the MacOS docs on my end, are they navigating to Android for you?

Thanks!
Michael

Ok thanks. Sorry tapped the wrong ones.

Do they work for you with the latest macOS SDK?

Hey @tmiskiew,

I am pulling down a fresh install in a new meeting right now to triple-check :slight_smile:

Thanks!
Michael

Hey @tmiskiew,

We just tested this in the demo app and both getShareSourceList and onSharingStatus worked with the latest version of the SDK.

Thanks!
Michael

Hey @Michael_Condon,

I just tested again with both SDKs to see the difference, While doing that I figured out the problem was indeed in my code.
I was setting the delegate in the initialiser of my custom class and seems like ZoomSDKASController is nil at that time. Now I am setting it right after calling the joinMeeting function and it works fine now.
But does that mean, the ZoomSDKASController, ZoomSDKMeetingUIController, ZoomSDKMeetingActionController are recreated for every meeting?
Should I set the delegate every time I start a meeting?

Hey @j_a_z_z,

So, an instance of ZoomSDKMeetingService will be created after the SDK has been authed/initialized. When the ZoomSDKMeetingService is created, it will also create the instances of ZoomSDKMeetingUIController and ZoomSDKMeetingActionController. These instances will stay around for the duration of the ZoomSDKMeetingService.

However, an instance of ZoomSDKASController is not created until the user has been admitted into a meeting. From there the ZoomSDKASController will stay around for the duration of the ZoomSDKMeetingService. So
[[[ZoomSDK sharedSDK] getMeetingService] getASController] will return nil until the user has entered a meeting.

Yes for the ZoomSDKASController delegate. Only because ZoomSDKASController will be nil until the user has joined into a meeting. If the user is going to be joining multiple meetings throughout the appā€™s lifecycle, you could keep resetting the delegate every time the user joins. However, the instance of ZoomSDKASController remains constant after the first meeting.

Thanks!
Michael

Thanks @Michael_Condon
Now it is clear to me. I was expecting it to behave like ZoomSDKMeetingActionController and ZoomSDKMeetingActionController as those delegates are also set in the initialisers.

Thanks for the clarification!

Hey @j_a_z_z,

You are welcome :slight_smile:. I totally understand how those can be expected to behave similarly.

Thanks!
Michael