Black Screen on iOS and Full-Screen Video Not Rendering on Both Android & iOS with flutter_zoom_videosdk: ^2.1.10

For everyone who has having black screen issues, I’ve found something that can be useful…

It seem that some of those black screen errors are related to how Flutter handles hybrid composition - For example, ZoomVideo SDK uses UiKitView to render the video on iOS and our app is applying rounded corners or any other transformation on Flutter side. This was causing a rendering error and leading to the black screen view.

After doing some tests I was able to get rid of those errors by removing everything that’s transforming the view. Even using a `Stack → Positioned` can cause this error.

1 Like

@Emerson1 Thank you for sharing your findings on this. Engineering is still looking into this currently and I’ve shared this and your logs with them so that should give them more insight.

1 Like

Hello, what’s the status of this issue.
Best regards.
Thank you

Hello All,

The black screen issue on iOS (and sometimes Android) occurs because of how Flutter’s hybrid composition interacts with Zoom’s UiKitView (on iOS) or PlatformView (on Android).

Zoom renders its video surface using a native platform view, and if Flutter applies any transformation (e.g., rounded corners, opacity, clipping, overlays, or using Stack + Positioned), the native view may fail to render properly — resulting in a blank / black screen.

This is my working code on IOS and Android:

class VideoGrid extends StatelessWidget {
  final List<ZoomVideoSdkUser> users;

  const VideoGrid({super.key, required this.users});

  @override
  Widget build(BuildContext context) {
    if (users.isEmpty) {
      return const Center(child: CircularProgressIndicator());
    }
    // ✅ Avoid GridView → Use Wrap for stable layout
    return LayoutBuilder(
      builder: (context, constraints) {
        final isSingle = users.length <= 1;
        final width = isSingle
            ? constraints.maxWidth
            : (constraints.maxWidth / 2) - 2;
        final height = isSingle
            ? constraints.maxHeight
            : (constraints.maxHeight / (users.length > 2 ? 2 : 1)) - 2;

        return Center(
          child: Wrap(
            direction: Axis.vertical,
            spacing: 0,
            runSpacing: 2,
            children: users
                .map(
                  (user) => SizedBox(
                    width: width,
                    height: height,
                    child: _SafeZoomView(user: user),
                  ),
                )
                .toList(),
          ),
        );
      },
    );
  }
}

class _SafeZoomView extends StatelessWidget {
  final ZoomVideoSdkUser user;

  const _SafeZoomView({required this.user});

  @override
  Widget build(BuildContext context) {
    // ✅ No Material, Container, or decoration!
    return ClipRect(
      // Only ClipRect is safe — doesn’t transform native layer
      child: zoom_view.View(
        key: Key(user.userId),
        creationParams: {
          "userId": user.userId,
          "videoAspect": VideoAspect.FullFilled,
          "fullScreen": false,
        },
      ),
    );
  }
}

Hello @ticorrian.heard

Can you please let us know when the latest version of “flutter_zoom_videosdk” will be released?

Best Regards,

@Maulik We have Flutter 2.3.5 releasing this month. I’ll try to get you a specific date.

Hello @ticorrian.heard

Is there any update on the ‘flutter_zoom_videosdk’ package that was planned for release this month? Please let me know if there’s any new information from the development team.

Best Regards.

Hi @Maulik The 2.3.5 update was released Nov 24th. You can view the changelog details here: Version 2.3.5

@ticorrian.heard Thanks for sharing the update.

I believe the Development team has released a version intended for “Web” development, but it does not resolve the issue we are facing.

From the beginning until now, I (and many other users) have repeatedly explained this problem after using the Flutter plugin. The issue exists in flutter_zoom_videosdk ^2.3.0 and in flutter_zoom_videosdk ^2.1.10.

To explain again clearly:

  • I tested both flutter_zoom_videosdk: ^2.1.10 and flutter_zoom_videosdk ^2.3.0.

  • After adding the plugin to my Flutter app and running pod install/update, it installs the native iOS dependency ZoomVideoSDK (2.3.0).

  • However, this version does not fix the black screen issue on iOS.

To resolve the black screen issue, the app requires ZoomVideoSDK (2.3.5) or higher.

As shown in the screenshot below, the issue has already been fixed by the iOS development team in ZoomVideoSDK 2.3.5+. However, the Flutter plugin has not yet been updated to include this newer native SDK version. The Flutter team’s code is still tied to ZoomVideoSDK 2.3.0, which is why the issue persists for Flutter users.

So again, I request an update on this:

When will the Flutter Development team upgrade flutter_zoom_videosdk to use ZoomVideoSDK (2.3.5) or a higher version?

This update is critical for resolving the black screen issue on iOS for all Flutter users.

Thank you.