ZoomSDKError 4 on UI functions

Description
Hello, I am using the mas OS SDK to change the UI while in a meeting. It used to work earlier but now, I am getting ZoomSDKError(rawValue: 4) on calling these functions.

Here is the UI for buttons, I added the function call for each button for your info.

These are the function calls for each,

1. sdk.getMeetingService()?.getMeetingUIController()?.switchFloatVideoToMinimizeMode()
2. sdk.getMeetingService()?.getMeetingUIController()?.switchFloatVideoToActiveSpeakerMode()
3. sdk.getMeetingService()?.getMeetingActionController()?.swap(toShowShareViewOrVideo: true)
4. sdk.getMeetingService()?.getMeetingUIController()?.switchFloatVideoToGalleryMode()
5. sdk.getMeetingService()?.getMeetingUIController()?.enterFullScreen(true, firstMonitor: true, dualMonitor: false)
6. sdk.getMeetingService()?.getMeetingUIController()?.showPreOrNextPageWallView(false)
7. sdk.getMeetingService()?.getMeetingUIController()?.showPreOrNextPageWallView(true)
8.  switchToVideoWallView & switchToActiveSpeakerView based on UI

I am using a meeting that is not created by me (I am not a host) with 7 participants for testing these functions.
Can you please review my code and let me know what can cause a ZoomSDKError 4 for this code.

Let me know if I need to consider other things while using these buttons, as I understood from the documentation these functions are not always available. Is there a way I can figure out when they are applicable for a meeting? It will help me in hide/show of buttons based on the meeting setting.

Which version?
5.2.42037.1112

Hi @j_a_z_z, thanks for the post.

Sorry to hear you are running into these issues. Just to clarify, are you receiving that error as the return value for all of these methods 100% of the time?

Thanks!

Hey @jon.lieblich

Thanks for your response. I get this error lot of time, but if I change the UI manually once in zoom UI, it starts to work. But it fails again after some time with error code 4.
For button no. 4, I never got it to working. This is my code.,

let result = sdkMeetingActionController?.swap(toShowShareViewOrVideo: true)
print("swap(toShowShareViewOrVideo \(true)) result: \(String(describing: result))")

I noticed sdkMeetingActionController?.canSwapToShowShareViewOrVideo() always return false for me.

Also, can you please let me know, If there is a callback from Zoom SDK when somebody started screen sharing. I would like to show button number 4 only when some body is sharing screen,
Similar to Zoom app behaviour.

There question here @jon.lieblich is what are the prerequisites for those calls to work. Full screen? Someone sharing screen? Gallery mode?

For some reason 1, 2 and 3 work only when someone is sharing the screen and don’t work in other cases. That’s not how this behaves in the original zoom app. What are we missing here?

Hi @j_a_z_z and @tmiskiew,

Based on the information in your other post, I suspect that this is due to there not being an active screen share when calling these methods. Please let me know if you see the error for any of these while a screen is being shared and we can look into this further.

Thanks!

In the original zoom client these buttons work when the floating panel appears on the right, i.e. I don’t have to share screen for them to work. Do you agree with me on this? So again how can we find out why they’re not working we called the way as specified above?

1 Like

Hi @tmiskiew,

That is a great point, however I noticed that there are slight differences in functionality between those two panels. Please allow me to follow up on this internally. Either we’re both missing something here, or I need to submit a feature request to achieve parity with the client. I’ll let you know which path we end up needing to take. :slightly_smiling_face:

Thanks!

Not sure which two panels and what differences you’re referring to. Please elaborate.

We had a discussion about this with your colleague here Is there an interface for next page of Float Video? and here Seeking floating panel interfaces and here Is there an interface for next page of Float Video?

While he mentioned the correct interface and while some of the interfaces were added in the mean time they don’t work as intended! Again please refer to the original zoom client and take note that when you’re in a meeting with a bunch of participants the floating panel with appear on the right hand side and all the floating panel interfaces work whether someone is sharing or not.

BTW one feature request that you could please raise it to add an interface for no 4 from this post Is there an interface for next page of Float Video?

Hi @tmiskiew,

While he mentioned the correct interface and while some of the interfaces were added in the mean time they don’t work as intended

I’m sorry, have you identified problems in addition to the issues discussed earlier in this thread? If you have, please let me know what the specific behavior/reproduction steps are so that we may take this into consideration while we investigate.

BTW one feature request that you could please raise it to add an interface for no 4 from this post Is there an interface for next page of Float Video?

I believe the feature you are referring to was introduced in our SDK release last month through this method. Please let me know if this is not functioning as expected.

Thanks!

I have said time and again that the calls switchFloatVideo* are not working. As I said in the original zoom client you can manipulate those buttons on the floating panel no matter if someone is sharing or not but with the SDK they only work when someone is sharing. This doesn’t make any sense. It’s a bug. Think about it why does the client display those buttons when there is no way to press them? Can do do us a favor and report that behaviour as a bug? Or shall we join a zoom call for me to demonstrate this to you?

Hi @tmiskiew,

I have already informed you that we are looking into the issues originally posted in this thread. My previous reply was asking if you had encountered any additional issues, not to restate topics that are already being investigated.

If you have additional information, please let me know so that we can take it into consideration while we investigate. As a reminder, it is important to keep our community guidelines in mind while using the dev forum so that we can ensure a great experience for all users. :slightly_smiling_face:

Thanks!

@jon.lieblich were you able to confirm that switchFloatVideo* interfaces don’t work as expected?

Please check these screenshots. A meeting with 27 participants. In full screen mode the floating panel appears on the right hand side. I can manipulate the appearance of the bar using the mouse without problems no matter whether someone is sharing his screen or not.

However when I try to press those buttons programmatically I only get the ZoomSDKError 4

Logs: https://miskiewicz.s3.eu-central-1.amazonaws.com/zoom/Remote+for+Zoom.zip

Hi @tmiskiew,

In our latest SDK release, we have added some fixes related to the float video mode. Have you had a chance to upgrade to v5.4.54518.1229 yet?

If this is still not working in the latest version, please let me know so that we can investigate this ASAP.

Thanks!

Hi @jon.lieblich - I can confirm that the latest version solved this problem. Big thanks!

1 Like

Really glad to hear we got this one figured out!

Please don’t hesitate to reach back out for help with any other issues.

@jon.lieblich there is one more thing!

How we can find out the (initial) state of these buttons?

Screenshot 2021-01-10 at 17.15.53

And can you tell me if there are interfaces for flipping through participants in the floating and the top bar panel?

Hey @jon.lieblich,

Related to similar topic, I am looking for two callbacks from Zoom SDK, if they are already present somewhere in SDK.

  1. Callback when the left floating panel with button 1,2,3, 4 appears. May be a delegate in SDK which I can listen to. I want to show the buttons in the app, only when they are visible in Zoom UI.
  2. Callback when Zoom UI full screen state changes, I figured that when a user is already sharing the screen and I join that meeting, zoom app automatically move me to full screen which results in incorrect button state :frowning:

1 more feedback for button 4

I found a property on ZoomSDKMeetingActionController

/**
     * @brief Determine if the user can swap to show sharing screen or video now.
     * @return YES means can, otherwise not.
     */
    open func canSwapToShowShareViewOrVideo() -> Bool

I am getting this as false for my user, will this property value change when somebody started a screen share and button 4 is visible in zoom UI?
I can use this to show hide button 4 initially, but when somebody shared the screen and it is updated, I could not find any callback for it.

Looking forward for some nice updates from you! :slight_smile: