Jitsi Meet SDK with Flutter: Build an Embedded Video Meeting App
Jitsi Meet is an open-source video conferencing platform. Its Flutter SDK allows developers to embed the Jitsi Meet experience into Flutter applications.
The current jitsi_meet_flutter_sdk supports Android and iOS. Current package documentation lists Android API 24 and iOS 15.1 as minimum supported versions.
Step 1: Create the Project
flutter create jitsi_flutter_demo
cd jitsi_flutter_demo
Step 2: Add the SDK
flutter pub add jitsi_meet_flutter_sdk
Step 3: Import the SDK
import 'package:jitsi_meet_flutter_sdk/jitsi_meet_flutter_sdk.dart';
Step 4: Configure iOS
Set:
platform :ios, '15.1'
Add to ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>The app needs access to your camera for meetings.</string>
<key>NSMicrophoneUsageDescription</key>
<string>The app needs access to your microphone for meetings.</string>
Step 5: Create the Jitsi Object
final jitsiMeet = JitsiMeet();
Step 6: Create Conference Options
final options = JitsiMeetConferenceOptions(
room: 'flutter-demo-room',
);
Step 7: Join the Meeting
await jitsiMeet.join(options);
This is the basic flow documented by the Jitsi Flutter SDK.
Step 8: Add User Information
You can provide user information through the conference options:
final options = JitsiMeetConferenceOptions(
room: 'flutter-demo-room',
userInfo: JitsiMeetUserInfo(
displayName: 'Flutter User',
email: 'user@example.com',
),
);
Use only parameters supported by the SDK version installed in your project.
Step 9: Listen for Meeting Events
Use the SDK's meeting listener APIs to react to events such as conference joined and conference terminated.
final listener = JitsiMeetingListener(
onConferenceJoined: (url) {
debugPrint('Joined: $url');
},
onConferenceTerminated: (url, error) {
debugPrint('Ended: $url');
},
);
Verify the current listener registration method against the package version you install.
Step 10: Leave the Meeting
The SDK provides a hang-up operation:
await jitsiMeet.hangUp();
Step 11: Screen Sharing
On iOS, screen sharing requires a Broadcast Upload Extension. Treat screen sharing as a separate native configuration step rather than assuming camera permissions are enough.
Step 12: Test the Meeting
Test:
- Camera permission.
- Microphone permission.
- Joining.
- Leaving.
- Multiple participants.
- Backgrounding.
- Network interruption.
- Screen sharing.
- Different Android and iOS versions.
Recommended Architecture
Flutter UI
↓
Meeting Controller
↓
Jitsi Service
↓
Jitsi Meet Flutter SDK
↓
Jitsi Server
For private meetings, add appropriate server-side authentication and room-access controls.
Conclusion
SDK integrations are easiest to maintain when credentials, platform-specific configuration, networking, and UI responsibilities are separated. Start with the smallest working flow, verify it on a physical device, and then add production concerns such as authentication, error handling, lifecycle management, and secure credential handling.
Stay tuned for more advanced Flutter SDK integration tutorials!
SEO Keywords
Flutter SDK tutorial, Flutter integration, Flutter mobile development, Dart SDK integration, Flutter Android, Flutter iOS, SDK integration
Tags
flutter dart mobiledevelopment sdk android
Useful Links
Website: www.v-modal.com
SDK Flutter: https://github.com/v-modal/vmodal_sdk_flutter
SDK Android: https://github.com/v-modal/vmodal_sdk_android
Discord: https://discord.gg/K72z28KUx
Top comments (0)