ZoomMtg.join gives "white screen" - WebSDK 1.9.9 - SharedArrayBuffer true - ScriptProcessorNode is deprecated

Description
While joining a zoom WebSdk meeting, apparently the JOIN method is not working since I just get a ‘white empty screen’. In console not real error beside the ScriptProcessorNode deprecation warning.

Error
[Deprecation] The ScriptProcessorNode is deprecated. Use AudioWorkletNode instead. (Enter Audio Worklet  |  Web  |  Google Developers)

Which Web Meeting SDK version?
WebSDK 1.9.9

To Reproduce(If applicable)
Steps to reproduce the behavior:

  1. Start Meeting…ZoomMtg.init working perfect, getting signature and meeting details
  2. System requirements supported by Zoom:
    {“browserInfo”:“Chrome/94.0.4606.61”,“browserName”:“Chrome”,“browserVersion”:“94.0.4606.61”,“features”:[“viewSharing”,“screenShare”,“computerVideo”,“computerAudio”,“callIn”,“callOut”,“chat”,“closedCaption”,“QA”,“POLLING”,“BREAKOUT”,“GALLARY”],“browserAbility”:{“SharedArrayBuffer”:true,“WebCodecs”:true}}
  • prepareJssdk change to prepareWebSDK …OK
  • pre load wasm success: /js/zoom/1.9.9/av/1502_audio.encode.wasm …OK
  • pre load wasm success: /js/zoom/1.9.9/av/1502_video.simd.wasm …OK

Screenshots
na

Device (please complete the following information):

  • Device: Apple MacBook Pro
  • OS: Catalina
  • Browser: Chrome
  • Browser Version /94.0.4606.61

Additional context

  • SharedArrayBuffer is true using WebIsolation.
  • Camera is starting.
  • Tab in the browser showing that the webcam is somehow connected and being used.

Hey @camillo ,

Can you please share what you are passing in for ZoomMtg.init() and ZoomMtg.join()? That is most likely where the issue is.

(Please don’t include any sensetive info like the meeting number, signature, and api key).

Thanks,
Tommy

Thanks @tommy, here are the details:

ZoomMtg.init({
        leaveUrl: window.location.href,
        // isSupportAV: true,
        success: () => {
          ZoomMtg.join({
            meetingNumber: this.meetConfig.meetingNumber,
            userName: this.meetConfig.userName,
            signature: this.signature,
            apiKey: this.meetConfig.apiKey,
            userEmail: "email@gmail.com",
            passWord: this.meetConfig.passWord,
            success: function (res) {
              console.log("join meeting success");
            },
            error: function (res) {
              console.log("error on console", res);
            },
          });
        },
        error: function (res) {
          console.log(res);
        },
      });

Hey @camillo ,

Are you getting these success or error logs? Or is ZoomMtg.join() not firing?

Can you share a screenshot of this white empty screen?

Thanks,
Tommy

Exactly @tommyZoomMtg.join() is not firing, I do not get any success nor error

The blank white screen is … just white, meeting number available from backend, but not able to join.

@tommy

here is the white screenshot

here is the console

Thanks @camillo .

This can happen if an unexpected value is passed into the SDK ZoomMtg.join() function. It fails silently.

Can you please email the exact values you are passing in to developersupport@zoom.us (include a link to this thread) and I will take a look. :slight_smile:

Thanks,
Tommy

Thanks @tommy …put me on the right direction. Issued solved; overall, it was the element id zmmtg-root that I was handling in a certain way in Web Sdk 1.9.0 with a transparency; apparently, that was creating some conflict in 1.9.9.
Once I could “see” the Join, the only other fix was the meetingNumber as int.

Thanks for your help.

1 Like

Hey @camillo ,

I am happy to hear you resolved the issue. :slight_smile:

Thanks for sharing your solution!

-Tommy

@ camillo,
Can you please pass the code or steps how to set value of SharedArrayBuffer to true using WebIsolation.

I have stuck in the same kind of issue.
That will helpful.

@vbhosale
I am using it through a Laravel backend, to overcome SharedArrayBuffer, I had to implement a custom-made middleware where I set the appropriate cors as required:

...
  ->header('Cross-Origin-Embedder-Policy', 'require-corp')
  ->header('Cross-Origin-Opener-Policy', 'same-origin')
...
1 Like

Thanks @camillo !

@vbhosale , please let us know if you got it working. :slight_smile:

-Tommy

@camillo & @tommy I’ll check and update.

Thanks guys.

1 Like

Happy to help! :slight_smile:

-Tommy