ZoomView fails to render remote video consistently and freezes when camera disabled

20 hours ago 3
ARTICLE AD BOX

Describe the bug
Remote users' video rendering is intermittent on iOS devices when using @zoom/react-native-videosdk. The video feed from remote participants randomly works - sometimes it displays correctly, sometimes it fails to render at all. This issue does not occur on Android devices where remote video renders consistently.

To Reproduce
Steps to reproduce the behavior:

Initialize Zoom Video SDK session on an iOS device

Join a Zoom session using zoom.joinSession()

Have a remote user join the same session (from web or mobile)

Render remote user's video using ZoomView component with their userId

Observe that remote user's video feed intermittently fails to render

Expected behavior
The ZoomView component should consistently render remote participants' video streams on iOS, similar to the reliable behavior on Android. Once a remote user joins and their video is enabled, their video feed should display in the ZoomViewcomponent.

Screenshots
https://github.com/user-attachments/assets/dd8171b5-d8ed-4dda-8544-a93d22c83527
https://github.com/user-attachments/assets/1e87d96b-6847-4f1b-ac2c-9230d053c995

Environment version of: (please complete the following information):

React Native: 0.81.5

Expo: ^54.0.31

Zoom Video SDK: @zoom/react-native-videosdk@^2.4.0

Node: (your version)

Cocoapods: (your version)

Target Platform (please complete the following information):

Device: iPhone

OS: iOS

Working Platform: Android (all versions tested work correctly)

Additional context

Code Implementation:

<ZoomView style={styles.zoomView} userId={user.userId} fullScreen={false} videoAspect={VideoAspect.PanAndScan} />

Session Configuration:

await zoom.joinSession({ sessionName: sessionName, token: token, userName: userName, audioOptions: { connect: true, mute: false, autoAdjustSpeakerVolume: false, }, videoOptions: { localVideoOn: Platform.OS === 'android' ? false : true, }, sessionIdleTimeoutMins: 10, });

Observations:

Remote user joins are detected correctly via EventType.onUserJoin

User list updates properly with remote users

Remote video rendering is intermittent - works sometimes, fails other times

Audio from remote users works reliably

Android devices render remote video consistently

Issue occurs when remote users join from web or other mobile clients

When remote video does work initially: If the remote user (web client) turns off their camera, the iOS device's screen freezes on the last video frame instead of showing a placeholder or blank screen

The frozen frame persists even though EventType.onUserVideoStatusChanged is triggered

Additional Issue - Video Freeze on Camera Off:

When the remote user's video is successfully rendering and they turn off their camera:

Expected: ZoomView should clear the video or show a placeholder

Actual on iOS: The screen freezes on the last video frame

Actual on Android: Works correctly - video clears or shows placeholder

The EventType.onUserVideoStatusChanged event fires correctly, but the ZoomView component on iOS doesn't update to reflect the video status change

The intermittent rendering and frame freeze issues suggest potential race conditions or platform-specific video lifecycle management problems in the iOS implementation of the Zoom Video SDK.

Read Entire Article