Starting video for user on iOS

Format Your New Topic as Follows:

Web Video SDK v1.5.5

In our Preview / Waiting Room, we give the users the option to turn on their camera to check its working. If a user turns on their camera in the Preview / Waiting room, we want to then turn it on for them once the join the Zoom Session to keep the experience streamlined.
In Chrome, and other desktop browsers, we are able to do this by setting state in the waiting room, checking that when the session starts, and then using stream.startVideo(options) to turn on the users camera if they had it on in the waiting room.

However, this is not working for us on iOS or iPadOS. My question is, do we need to do something differently, or is this a limitation of the SDK/iOS security?


Hi @tom.roper ,

I don’t see waiting room available in the iOS version of the Video SDK. What documentation were you referring to?

Instead do you mean when they start video preview?

You can get their video status and try using this video helper to have their camera persist when they are accepted into the session.

Here’s the full reference for iOS:

Looking forward to your response.

Hey @tom.roper ,

Just sharing the current status of this issue.

On iPadOS and iOS browsers with SharedArrayBuffer enabled, there is a confirmed bug that does not allow the self video to be started/rendered.

We are working on a fix with high priority.

In the meantime, if you disable SharedArrayBuffer, for iPadOS and iOS the self view video will work.


Hi @tommy , thanks for the update.
Do you have a code example of how to disable SharedArrayBuffer? We were considering setting it to undefined if we’re on iOS and its available, would that be correct?

if (iOS/iPad etc && typeof SharedArrayBuffer === "function") {
  SharedArrayBuffer = undefined


Hey @tom.roper

It’s configured on the web server side, disable Cross-Origin Isolation will disable SharedArrayBuffer.
For example on Nginx web server:

if ($http_user_agent !~* "^((?!chrome|android).)*safari") {
  add_header Cross-Origin-Embedder-Policy "require-corp";
  add_header Cross-Origin-Opener-Policy "same-origin";