zoom_meeting_glmv 0.2.0 copy "zoom_meeting_glmv: ^0.2.0" to clipboard
zoom_meeting_glmv: ^0.2.0 copied to clipboard

Zoom Meeting SDK for Flutter with Dart-level control over the in-meeting UI: hide the meeting ID, passcode, invite link, share, participants and more.

zoom_meeting_glmv #

A Flutter plugin for the Zoom Meeting SDK, with Dart-level control over Zoom's built-in in-meeting UI.

Zoom renders its own full-screen meeting interface. This package lets you decide what appears in it — hide the meeting ID, passcode, invite link, screen share, participants list, or the whole overflow menu, and choose whether a participant joins muted and with the camera off.

Tested against Zoom Meeting SDK 6.4.3 (Android 6.4.3.28970, iOS 6.4.3.23800).

Supported platforms

Platform Status
Android Supported, UI options implemented
iOS Supported, UI options implemented, Swift Package Manager and CocoaPods
macOS Inherited from upstream, no UI options, untested, CocoaPods only
Windows Inherited from upstream, no UI options, untested

⚠️ This plugin does not bundle Zoom's SDK binaries. They are proprietary and licensed per application, so you download them yourself — see Getting started.

Why this package exists #

The Zoom Meeting SDK exposes switches for most of its meeting UI, but existing Flutter bridges forward only no_video and no_audio, leaving the rest unreachable from Dart. If you are embedding Zoom in a product — a classroom, a telehealth visit, a paid lesson — Zoom's default toolbar hands every participant the meeting ID, the passcode and an invite link.

This package surfaces those switches.

import 'package:zoom_meeting_glmv/zoom_meeting_glmv.dart';
import 'package:zoom_meeting_glmv/models/zoom_meeting_sdk_request.dart';

final zoom = ZoomMeetingGlmv();

await zoom.initZoom();
await zoom.authZoom(jwtToken: jwt);

await zoom.joinMeeting(
  ZoomMeetingSdkRequest(
    meetingNumber: meetingNumber,
    password: passcode,
    displayName: displayName,
    uiOptions: ZoomMeetingUiOptions.lessonLockdown,
  ),
);

lessonLockdown leaves the microphone, chat and leave controls and hides everything else, joining muted and with the camera off. Build your own set when it does not fit:

uiOptions: const ZoomMeetingUiOptions(
  hideMeetingPassword: true,
  hideInviteButton: true,
  hideShareButton: true,
  hideVideoButton: true,
  joinWithVideoOff: true,
),

Every flag defaults to false, so omitting uiOptions gives you Zoom's default UI unchanged. The full list, with per-platform support, is in README_API.md.

Pair joinWithVideoOff with hideVideoButton. Hiding the video button while joining with the camera on leaves a participant broadcasting with no control to stop it.

What it cannot hide #

Some toolbar items have no visibility API in either SDK, and must be turned off in the Zoom web portal instead:

  • AI Companion — disable each feature under Account Settings → AI Companion, then set each to "Hidden in Meetings toolbar".
  • CaptionshideClosedCaption covers Zoom's legacy closed-caption feature only, not live transcription. Turn off Automated captions in the portal.
  • Raise hand — no switch exists anywhere for meetings; Zoom scopes that control to webinars. Note it moves into the main toolbar when you set hideMoreButton.
  • The meeting ID on iOS — no switch exists. hideMeetingTitle is the mitigation, since the title opens the meeting-info panel.

Getting started #

1. Download the Zoom Meeting SDK #

Get it from the Zoom App Marketplace after enabling Meeting SDK under your app's Features → Embed section. You need a Meeting SDK app to obtain the credentials that sign your JWTs.

2. Place the binaries #

Create a ZoomSDK/ directory at the root of your Flutter project:

<your app>/
├── ZoomSDK/
│   ├── android/
│   │   ├── mobilertc.aar
│   │   └── build.gradle        # ships with the SDK, defines sdkDependenciesList
│   └── ios/
│       ├── MobileRTC.xcframework
│       └── MobileRTCResources.bundle
├── android/
├── ios/
└── lib/

Both platforms resolve ZoomSDK/ automatically and fail with an explicit message if it is missing. To keep the SDK somewhere else, override the location per platform — in android/gradle.properties:

zoomSdkDir=../vendor/zoom/android

and through the environment on iOS:

export ZOOM_SDK_IOS_DIR=/path/to/vendor/zoom/ios

On iOS the plugin points its own compile and link at that copy, whether your project integrates plugins with Swift Package Manager or CocoaPods. Your app target still embeds the XCFramework and copies MobileRTCResources.bundle; README_IOS.md covers both, with a Podfile snippet that scripts it.

3. Platform setup #

  • Android
  • iOS
  • macOS
  • Windows

4. Authorise #

Meeting SDK JWTs must be generated on a trusted server. Never ship your Zoom Client Secret in the app. See Zoom's authorisation docs.

Documentation #

  • API reference — every method, event stream and UI flag
  • Example code

Credits #

Derived from flutter_zoom_meeting_sdk 0.0.11 by SIMITGROUP, used under the Apache License 2.0. See NOTICE for the list of changes made in this derivative work.

Not affiliated with, endorsed by, or sponsored by SIMITGROUP or Zoom Communications, Inc. "Zoom" is a trademark of Zoom Communications, Inc.

License #

Apache License 2.0.

2
likes
140
points
126
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Zoom Meeting SDK for Flutter with Dart-level control over the in-meeting UI: hide the meeting ID, passcode, invite link, share, participants and more.

Repository (GitHub)
View/report issues

Topics

#zoom #video-conferencing #meetings #sdk

License

Apache-2.0 (license)

Dependencies

flutter, http, plugin_platform_interface

More

Packages that depend on zoom_meeting_glmv

Packages that implement zoom_meeting_glmv