MediaSFU Flutter SDK
Ship production-ready voice, video, and AI communication in minutes — not months.
MediaSFU gives you prebuilt, fully-featured event room components with real-time video/audio, screen sharing, recording, chat, polls, whiteboards, real-time translation, and more. Drop them into your Flutter app with a few lines of code and go live on all 6 platforms.
Why MediaSFU?
| What you need | Without MediaSFU | With MediaSFU |
|---|---|---|
| Video conferencing | 6–12 months of WebRTC, TURN/STUN, codec work | flutter pub add mediasfu_sdk → done |
| Pricing | $1–5 per 1,000 minutes (Twilio, Vonage, Daily) | $0.10 per 1,000 minutes — 10–50x cheaper |
| UI components | Build every modal, card, and control from scratch | Prebuilt components — classic & modern themes |
| AI features | Wire up third-party AI, TTS, vision APIs yourself | Built-in AI agents, voice translation, transcription |
| Platform coverage | Separate codebases per platform | One SDK → Android, iOS, Web, macOS, Windows, Linux |
| Time to first call | Weeks of infrastructure setup | Under 5 minutes |
🔥 What Makes MediaSFU Different
Embeddable by DesignOther platforms give you raw APIs and leave you to build the UI. MediaSFU gives you finished, production-ready components — video grids, control bars, modals, chat panels, recording controls — that you drop in and customize. AI-Native, Not Bolted OnAI agents, real-time voice translation (50+ languages), live transcription, and intelligent routing are built into the platform — not third-party add-ons you wire up yourself. |
Pricing That Makes Sense$0.10 per 1,000 minutes. This isn't a loss-leader — MediaSFU runs its own media infrastructure. No reselling. No hidden fees. Free tier included, no credit card required. Full Stack, One PlatformVoice + video + chat + screen sharing + recording + polls + whiteboards + breakout rooms + AI + translation + SIP. All included. Replace 5 communication tools with one SDK. |
⚠️ Important: Backend Server Required
MediaSFU is a frontend SDK that requires a backend media server to function.
| Option | Description | Best For |
|---|---|---|
| ☁️ MediaSFU Cloud | Managed service at mediasfu.com | Production apps, zero infrastructure |
| 🏠 MediaSFU Open | Self-hosted open-source server | Full control, on-premise requirements |
# Option 1: Use MediaSFU Cloud
# Sign up at https://www.mediasfu.com and get your API credentials
# Option 2: Self-host with MediaSFU Open
git clone https://github.com/MediaSFU/MediaSFUOpen
cd MediaSFUOpen
docker-compose up -d
📖 MediaSFU Cloud Documentation → 📖 MediaSFU Open Repository →
📖 Table of Contents
- Quick Start
- Installation
- Platform Support
- Platform Features
- Prebuilt Event Rooms
- Modern UI Components
- Usage Examples
- Customization
- Self-Hosting / Community Edition
- Advanced Features
- SDKs for Every Framework
- Detailed Documentation
🚀 Quick Start
Three steps. Under 5 minutes. First video call live.
1. Install
flutter pub add mediasfu_sdk
2. Import & Build
import 'package:flutter/material.dart';
import 'package:mediasfu_sdk/mediasfu_sdk.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MediasfuGeneric(
options: MediasfuGenericOptions(
credentials: Credentials(
apiUserName: "yourUsername",
apiKey: "yourAPIKey",
),
),
),
);
}
}
3. Run
flutter run
That's it. You have a fully-featured video conferencing room with screen sharing, chat, recording, and more — running on any platform Flutter supports.
Want to try without a server? Use demo mode:
MediasfuGeneric( options: MediasfuGenericOptions( useLocalUIMode: true, useSeed: true, seedData: SeedData(member: "DemoUser", eventType: EventType.conference), ), )
📦 Installation
flutter pub add mediasfu_sdk
Requirements
- Flutter: 3.3.3 or higher
- Dart: 3.3.3 or higher
🌍 Platform Support
One codebase. Six platforms. No compromises.
| Platform | Supported | Notes |
|---|---|---|
| Android | ✅ | Min SDK 23 |
| iOS | ✅ | iOS 12.0+ |
| Web | ✅ | HTTPS required |
| macOS | ✅ | macOS 10.15+ |
| Windows | ✅ | Native desktop |
| Linux | ✅ | Native desktop |
Each platform requires specific permissions and configurations. See the Platform Setup Guide for detailed instructions:
- Android Setup — Camera, microphone, internet permissions
- iOS Setup — Camera, microphone usage descriptions
- macOS Setup — Entitlements for camera, microphone, network
- Web Setup — HTTPS for production; browser permissions
- Windows / Linux Setup — Standard Flutter desktop setup
Optional Dependencies
Some features require platform-specific dependencies. If installing from pub.dev, add these to your app's pubspec.yaml based on your target platforms:
# pubspec.yaml - Add as needed:
# Virtual Backgrounds (Android/iOS only)
google_mlkit_selfie_segmentation: ^0.8.0
# Web platform enhancements (Web only)
web: ^1.1.1
dart_webrtc: ^1.4.6
| Feature | Dependency | Platforms |
|---|---|---|
| Virtual Backgrounds | google_mlkit_selfie_segmentation |
Android, iOS |
| Whiteboard Canvas (Web) | web, dart_webrtc |
Web |
Note: If you clone from GitHub, all dependencies are already included. The pub.dev version excludes platform-specific deps so it shows support for all platforms.
✨ Platform Features
Everything you need for enterprise-grade real-time communication — included at $0.10/1K min:
🎥 Video & Audio
- Multi-party video conferencing with adaptive quality
- Screen sharing with real-time annotation
- Virtual backgrounds and video effects (Android/iOS)
- Audio-only participant support
🎤 Real-time Translation 🌍
- Speak in any language — The system auto-detects what language you're speaking
- Listen in any language — Hear others translated to your preferred language in real time
- Live transcription — See real-time transcripts during meetings
- 50+ languages supported — True borderless communication
- No interpreters. No delay. Works with voice, video, and chat.
🤖 AI-Powered Features
- AI voice agents that answer, resolve, and escalate
- Multimodal AI with voice + vision capabilities
- AI-generated meeting summaries and transcription
- Intelligent call routing and warm handoffs
- Voice cloning options with custom TTS configurations
👥 Participant Management
- Panelists Mode — Designate speakers in webinars with audience Q&A
- Individual Permissions — Granular per-participant control (video/audio/screen/chat)
- Group Permissions — Apply permission templates to participant groups
- Waiting room with manual admit
- Co-host delegation with configurable responsibilities
- Breakout rooms for focused discussions
📊 Engagement Tools
- Live polls with real-time results
- In-meeting chat (direct & group)
- Collaborative whiteboards
🎬 Recording & Analytics
- Cloud recording with track-based customization
- Watermarks, name tags, custom backgrounds
- Real-time call analytics
🔒 Security & Control
- End-to-end encryption option
- Domain-locked API keys
- Managed events with time/capacity limits
- Abandoned participant handling
🏛️ Prebuilt Event Rooms
Choose the room type that fits your use case — or use MediasfuGeneric for maximum flexibility:
| Component | Use Case | Description |
|---|---|---|
MediasfuGeneric |
Universal | Supports all event types dynamically |
ModernMediasfuGeneric |
Universal (Premium) | Theme-aware, glassmorphism UI |
MediasfuConference |
Meetings | Multi-party video conferencing |
MediasfuWebinar |
Webinars | Presenters + audience model |
MediasfuBroadcast |
Broadcasting | One-to-many live streaming |
MediasfuChat |
Chat Rooms | Text-based with optional media |
All prebuilt components share the same options interface:
MediasfuGenericOptions(
// Authentication
credentials: Credentials(apiUserName: "user", apiKey: "key"),
// Connection
localLink: "", // Self-hosted server URL
connectMediaSFU: true, // Toggle auto-connection
// Customization
preJoinPageWidget: customPreJoin, // Custom pre-join page
customVideoCard: customVideoCard, // Custom video display
customAudioCard: customAudioCard, // Custom audio display
customMiniCard: customMiniCard, // Custom mini display
// Advanced
returnUI: true, // Set false for headless mode
useLocalUIMode: false, // Demo/local mode
seedData: seedData, // Pre-populate for demos
)
🎨 Modern UI Components
ModernMediasfuGeneric is the premium, theme-aware variant featuring:
- Glassmorphism design with backdrop blur effects
- Dark/Light theme with automatic system detection
- Smooth animations and micro-interactions
- Premium color system with gradient support
- Responsive layouts for every screen size
import 'package:mediasfu_sdk/mediasfu_sdk.dart';
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ModernMediasfuGeneric(
options: ModernMediasfuGenericOptions(
credentials: Credentials(apiUserName: "user", apiKey: "key"),
// Theme automatically adapts to system preference
),
);
}
}
Modern Components Available
| Modern Component | Classic Equivalent | Highlights |
|---|---|---|
ModernVideoCard |
VideoCard |
Glass effect, animated borders |
ModernAudioCard |
AudioCard |
Gradient waveforms, glow effects |
ModernMiniCard |
MiniCard |
Sleek thumbnails with status |
ModernMenuModal |
MenuModal |
Slide animations, blur backdrop |
ModernMessagesModal |
MessagesModal |
Chat bubbles, typing indicators |
ModernRecordingModal |
RecordingModal |
Status animations, progress rings |
ModernParticipantsModal |
ParticipantsModal |
Search, filters, role badges |
ModernBackgroundModal |
BackgroundModal |
Image gallery, blur previews |
ModernPollModal |
PollModal |
Real-time voting, animations |
ModernBreakoutRoomsModal |
BreakoutRoomsModal |
Drag-and-drop, room previews |
ModernPanelistsModal |
— | Panelist management for webinars |
ModernPermissionsModal |
— | Per-participant permission control |
TranslationSettingsModal |
— | Real-time translation configuration |
💡 Usage Examples
Basic Conference Room
import 'package:mediasfu_sdk/mediasfu_sdk.dart';
class ConferenceApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MediasfuConference(
options: MediasfuConferenceOptions(
credentials: Credentials(
apiUserName: "yourUsername",
apiKey: "yourAPIKey",
),
),
);
}
}
Headless Mode (Build Your Own UI)
Use MediaSFU as a pure backend engine while rendering a completely custom UI:
import 'package:mediasfu_sdk/mediasfu_sdk.dart';
class CustomApp extends StatefulWidget {
@override
State<CustomApp> createState() => _CustomAppState();
}
class _CustomAppState extends State<CustomApp> {
final ValueNotifier<MediasfuParameters?> _params = ValueNotifier(null);
void _updateParams(MediasfuParameters? params) {
_params.value = params;
}
@override
Widget build(BuildContext context) {
return Stack(
children: [
MediasfuGeneric(
options: MediasfuGenericOptions(
credentials: Credentials(apiUserName: "user", apiKey: "key"),
returnUI: false, // Headless mode — no default UI rendered
updateSourceParameters: _updateParams,
),
),
ValueListenableBuilder<MediasfuParameters?>(
valueListenable: _params,
builder: (context, params, _) {
if (params == null) return CircularProgressIndicator();
return MyCustomMeetingUI(parameters: params);
},
),
],
);
}
}
Custom Video Cards
VideoCardType myCustomVideoCard({
required Participant participant,
required Stream stream,
required double width,
required double height,
// ... other parameters
}) {
return Container(
width: width,
height: height,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(16),
border: Border.all(color: Colors.purple, width: 2),
),
child: ClipRRect(
borderRadius: BorderRadius.circular(16),
child: VideoCard(
options: VideoCardOptions(
participant: participant,
videoStream: stream.stream,
),
),
),
);
}
// Use it
MediasfuGeneric(
options: MediasfuGenericOptions(
credentials: credentials,
customVideoCard: myCustomVideoCard,
),
)
🎨 Customization
UI Overrides
Override specific UI components while keeping the defaults for everything else:
final uiOverrides = MediasfuUICustomOverrides(
mainContainer: ComponentOverride<MainContainerComponentOptions>(
render: (context, options, defaultBuilder) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(24),
border: Border.all(color: Colors.purple, width: 3),
),
child: defaultBuilder(context, options),
);
},
),
);
MediasfuGeneric(
options: MediasfuGenericOptions(
credentials: credentials,
uiOverrides: uiOverrides,
),
)
Available Override Keys
| Category | Keys |
|---|---|
| Layout | mainContainer, mainAspect, mainScreen, mainGrid, subAspect, otherGrid, flexibleGrid, audioGrid, pagination |
| Controls | controlButtons, controlButtonsAlt, controlButtonsTouch |
| Participant | miniAudio, miniAudioPlayer, meetingProgressTimer |
| Modals | loadingModal, alert, menuModal, participantsModal, messagesModal, recordingModal, pollModal, breakoutRoomsModal, and more... |
| Entry | preJoinPage, welcomePage |
| Functions | consumerResume, addVideosGrid, prepopulateUserMedia |
🏠 Self-Hosting / Community Edition
For complete control over your infrastructure:
// Self-hosted only
MediasfuGeneric(
options: MediasfuGenericOptions(
localLink: "https://your-mediasfu-server.com",
connectMediaSFU: false,
),
)
// Hybrid mode — local server + MediaSFU cloud features
MediasfuGeneric(
options: MediasfuGenericOptions(
localLink: "https://your-server.com",
connectMediaSFU: true,
credentials: Credentials(apiUserName: "user", apiKey: "key"),
),
)
🌐 Advanced Features
sourceParameters — The Power API
Access all MediaSFU functionality programmatically through sourceParameters:
// Get all video/audio streams
final videoStreams = params.allVideoStreams;
final audioStreams = params.allAudioStreams;
// Control media
params.clickVideo(ClickVideoOptions(parameters: params));
params.clickAudio(ClickAudioOptions(parameters: params));
params.clickScreenShare(ClickScreenShareOptions(parameters: params));
// Toggle modals
params.updateIsParticipantsModalVisible(true);
params.updateIsMessagesModalVisible(true);
params.updateIsRecordingModalVisible(true);
// Access room state
final participants = params.participants;
final roomName = params.roomName;
final isRecording = params.recordStarted;
Panelists Mode (Webinars)
Designate specific participants as panelists who can speak, while others remain audience members:
final panelists = params.panelists;
final panelistsFocused = params.panelistsFocused;
// Events: panelistsUpdated, addedAsPanelist, removedFromPanelists, panelistFocusChanged
params.updateIsPanelistsModalVisible(true);
Individual & Group Permissions
Fine-grained control over what each participant can do:
// Permission levels: "0" Standard, "1" Elevated (co-host), "2" Host (full control)
// Configurable per participant: video, audio, screen sharing, chat access
final permissionConfig = params.permissionConfig;
params.updateIsPermissionsModalVisible(true);
Real-time Translation 🌍
Participants speak in their native language and listen in any language — powered by live AI translation:
// Translation is configured via TranslationSettingsModal (ModernMediasfuGeneric)
// Events: translation:roomConfig, translation:languageSet, translation:subscribed,
// translation:transcript, translation:speakerOutputChanged
final translationMeta = params.translationMeta;
final translationConfig = params.translationConfig;
- 50+ languages — real-time speech translation during live calls
- No interpreters, no delay — AI-powered, built into every call
- Voice cloning options — advanced TTS with custom voice configurations
Virtual Backgrounds (Android/iOS)
# Add to your pubspec.yaml (Android/iOS only):
google_mlkit_selfie_segmentation: ^0.8.0
Virtual backgrounds are automatically available in MediaSettingsModal. Users can select blur or image backgrounds. See Platform Setup for ML Kit configuration.
Get Participant Media
final videoStream = getParticipantMedia(
options: GetParticipantMediaOptions(
participantId: 'producer-123',
mediaType: 'video',
parameters: params,
),
);
🛠️ SDKs for Every Framework
MediaSFU isn't just Flutter. The same communication platform is available across 7 frameworks — same API surface, same capabilities, same pricing:
| Framework | Package |
|---|---|
| Flutter | mediasfu_sdk (you are here) |
| React | @mediasfu/mediasfu-reactjs |
| React Native | @mediasfu/mediasfu-reactnative |
| Expo | @mediasfu/mediasfu-reactnative-expo |
| Angular | @mediasfu/mediasfu-angular |
| Vue | @mediasfu/mediasfu-vue |
| Android (Kotlin) | MediaSFU Android |
Plus native apps for Windows, Linux, macOS, iOS, Android, and Web. Not Electron — real native apps.
📖 Detailed Documentation
For comprehensive documentation including full API reference, 200+ methods, socket event handling, recording configuration, breakout rooms, whiteboard integration, troubleshooting, and more:
📄 See README_DETAILED.md
🔗 Links
- Website: mediasfu.com
- Documentation: mediasfu.com/flutter
- API Documentation: mediasfu.com/developers
- MediaSFU Open: github.com/MediaSFU/MediaSFUOpen
- Sandbox: mediasfu.com/sandbox
- Community Forum: mediasfu.com/forums
📄 License
MIT © MediaSFU
Built with ❤️ by MediaSFU
Voice · Video · AI · Translation · 6 Platforms · $0.10/1K min
Libraries
- components
- components/background_components/background_components
- Background Components
- components/background_components/background_modal
- components/background_components/background_preview_widget
- components/background_components/background_processor_service
- components/background_components/background_video_display
- components/background_components/compositor
- components/background_components/frame_processor
- components/background_components/mlkit_segmenter_stub
- ML Kit Selfie Segmentation Integration
- components/background_components/native_virtual_background
- components/background_components/processed_video_renderer
- components/background_components/screen_wake_lock
- components/background_components/segmenter/segmenter
- Segmenter - Conditional Export Router
- components/background_components/segmenter/segmenter_interface
- Segmenter Interface - Shared Base for All Platforms
- components/background_components/segmenter/segmenter_mobile
- Mobile/Desktop Segmenter - Uses native implementations for supported platforms
- components/background_components/segmenter/segmenter_stub
- Stub Segmenter - Fallback for Unsupported Platforms
- components/background_components/virtual_background_channel
- components/background_components/virtual_background_processor
- components/background_components/virtual_background_types
- components/background_components/virtual_stream_source
- components/breakout_components/breakout_rooms_modal
- components/co_host_components/co_host_modal
- components/display_components/alert_component
- components/display_components/audio_card
- components/display_components/audio_decibel_check
- components/display_components/audio_grid
- components/display_components/card_video_display
- components/display_components/flexible_grid
- components/display_components/flexible_video
- components/display_components/loading_modal
- components/display_components/main_aspect_component
- components/display_components/main_container_component
- components/display_components/main_grid_component
- components/display_components/main_screen_component
- components/display_components/meeting_progress_timer
- components/display_components/mini_audio
- components/display_components/mini_card
- components/display_components/other_grid_component
- components/display_components/pagination
- components/display_components/participants_counter_badge
- components/display_components/simple_audio_player
- components/display_components/sub_aspect_component
- components/display_components/video_card
- components/display_settings_components/display_settings_modal
- components/event_settings_components/event_settings_modal
- components/exit_components/confirm_exit_modal
- components/media_settings_components/media_settings_modal
- components/mediasfu_components/mediasfu_broadcast
- components/mediasfu_components/mediasfu_chat
- components/mediasfu_components/mediasfu_conference
- components/mediasfu_components/mediasfu_generic
- components/mediasfu_components/mediasfu_webinar
- components/menu_components/meeting_id_component
- components/menu_components/meeting_passcode_component
- components/message_components/message_panel
- components/message_components/messages_modal
- components/misc_components/confirm_here_modal
- components/misc_components/prejoin_page
- components/misc_components/welcome_page
- components/misc_components/welcome_page_qrcode
- components/panelists_components/panelists_components
- components/panelists_components/panelists_modal
- components/participants_components/participant_list
- components/participants_components/participant_list_item
- components/participants_components/participant_list_others
- components/participants_components/participant_list_others_item
- components/participants_components/participants_modal
- components/permissions_components/permissions_components
- components/permissions_components/permissions_modal
- components/polls_components/poll_modal
- components/recording_components/advanced_panel_component
- components/recording_components/recording_modal
- components/recording_components/standard_panel_component
- components/requests_components/render_request_component
- components/requests_components/requests_modal
- components/waiting_components/waiting_modal
- components/whiteboard_components/configure_whiteboard_modal
- components/whiteboard_components/screenboard
- components/whiteboard_components/screenboard_modal
- components/whiteboard_components/whiteboard
- components/whiteboard_components/whiteboard_components
- Whiteboard Components
- components/whiteboard_components/whiteboard_painter
- components/whiteboard_components/whiteboard_shape
- components/whiteboard_components/whiteboard_toolbar
- components_modern/background_components/modern_background_modal
- components_modern/breakout_components/modern_breakout_rooms_modal
- components_modern/co_host_components/modern_co_host_modal
- components_modern/components_modern
- Core theme exports
- components_modern/core/mediasfu_core
- MediaSFU Modern Core
- components_modern/core/theme/mediasfu_animations
- components_modern/core/theme/mediasfu_borders
- components_modern/core/theme/mediasfu_colors
- components_modern/core/theme/mediasfu_spacing
- components_modern/core/theme/mediasfu_theme
- components_modern/core/theme/mediasfu_theme_exports
- MediaSFU Modern Theme System
- components_modern/core/theme/mediasfu_typography
- components_modern/core/theme/modern_style_options
- components_modern/core/widgets/animated_gradient_background
- components_modern/core/widgets/animation_widgets
- components_modern/core/widgets/glassmorphic_container
- components_modern/core/widgets/glow_container
- components_modern/core/widgets/gradient_card
- components_modern/core/widgets/modal_gradient_divider
- components_modern/core/widgets/modal_header
- components_modern/core/widgets/modern_switch
- components_modern/core/widgets/neumorphic_container
- Premium UI widget primitives for the modern MediaSFU UI.
- components_modern/core/widgets/pulse_border
- components_modern/core/widgets/section_card
- components_modern/core/widgets/section_title
- components_modern/core/widgets/shimmer_loading
- components_modern/core/widgets/skeleton_loader
- components_modern/core/widgets/styled_container
- components_modern/display_components/modern_alert_component
- components_modern/display_components/modern_audio_card
- components_modern/display_components/modern_audio_decibel_check
- components_modern/display_components/modern_card_video_display
- components_modern/display_components/modern_flexible_grid
- components_modern/display_components/modern_flexible_video
- components_modern/display_components/modern_loading_modal
- components_modern/display_components/modern_main_container_component
- components_modern/display_components/modern_meeting_progress_timer
- components_modern/display_components/modern_mini_card
- components_modern/display_components/modern_pagination
- components_modern/display_components/modern_video_card
- components_modern/display_settings_components/modern_display_settings_modal
- components_modern/event_settings_components/modern_event_settings_modal
- components_modern/exit_components/modern_confirm_exit_modal
- components_modern/media_settings_components/modern_media_settings_modal
- components_modern/mediasfu_components/modern_mediasfu_generic
- components_modern/menu_components/modern_meeting_id_component
- components_modern/menu_components/modern_meeting_passcode_component
- components_modern/message_components/modern_message_panel
- components_modern/message_components/modern_messages_modal
- components_modern/misc_components/modern_confirm_here_modal
- components_modern/misc_components/modern_prejoin_page
- components_modern/misc_components/modern_welcome_page
- components_modern/panelists_components/modern_panelists_modal
- components_modern/participants_components/modern_participant_list
- components_modern/participants_components/modern_participants_modal
- components_modern/permissions_components/modern_permissions_modal
- components_modern/polls_components/modern_poll_modal
- components_modern/recording_components/modern_advanced_panel_component
- components_modern/recording_components/modern_recording_modal
- components_modern/recording_components/modern_standard_panel_component
- components_modern/requests_components/modern_requests_modal
- components_modern/translation_components/translation_components
- Translation Components Module
- components_modern/translation_components/translation_settings_modal
- components_modern/utils/modern_mini_audio_player
- Modern Mini Audio Player - Glassmorphic audio player widget
- components_modern/waiting_components/modern_waiting_modal
- components_modern/whiteboard_components/modern_configure_whiteboard_modal
- consumers
- consumers/add_videos_grid
- consumers/auto_adjust
- consumers/calculate_rows_and_columns
- consumers/change_vids
- consumers/check_grid
- consumers/check_permission
- consumers/close_and_resize
- consumers/compare_active_names
- consumers/compare_screen_states
- consumers/connect_ips
- consumers/connect_local_ips
- consumers/connect_recv_transport
- consumers/connect_send_transport
- consumers/connect_send_transport_audio
- consumers/connect_send_transport_screen
- consumers/connect_send_transport_video
- consumers/consumer_resume
- consumers/control_media
- consumers/create_send_transport
- consumers/disconnect_send_transport_audio
- consumers/disconnect_send_transport_screen
- consumers/disconnect_send_transport_video
- consumers/disp_streams
- consumers/generate_page_content
- consumers/get_estimate
- consumers/get_piped_producers_alt
- consumers/get_producers_piped
- consumers/get_videos
- consumers/mix_streams
- consumers/on_screen_changes
- consumers/prepopulate_user_media
- consumers/process_consumer_transports
- consumers/process_consumer_transports_audio
- consumers/re_port
- consumers/re_update_inter
- consumers/readjust
- consumers/receive_all_piped_transports
- consumers/receive_room_messages
- consumers/reorder_streams
- consumers/resume_pause_audio_streams
- consumers/resume_pause_streams
- consumers/resume_send_transport_audio
- consumers/signal_new_consumer_transport
- consumers/socket_receive_methods/join_consume_room
- consumers/socket_receive_methods/new_pipe_producer
- consumers/socket_receive_methods/producer_closed
- consumers/start_consuming_translation
- consumers/stream_success_audio
- consumers/stream_success_audio_switch
- consumers/stream_success_screen
- consumers/stream_success_video
- consumers/switch_user_audio
- consumers/switch_user_video
- consumers/switch_user_video_alt
- consumers/translation_consumer_switch
- Translation Consumer Switch Utilities
- consumers/trigger
- consumers/update_mini_cards_grid
- consumers/update_participant_audio_decibels
- main
- main_broadcast
- main_chat
- main_conference
- main_generic
- main_modern
- main_playbook_core
- main_unique
- main_webinar
- mediasfu_sdk
- methods
- methods/breakout_rooms_methods/breakout_room_updated
- methods/breakout_rooms_methods/launch_breakout_rooms
- methods/co_host_methods/launch_co_host
- methods/co_host_methods/modify_co_host_settings
- methods/display_settings_methods/launch_display_settings
- methods/display_settings_methods/modify_display_settings
- methods/exit_methods/confirm_exit
- methods/exit_methods/launch_confirm_exit
- methods/media_settings_methods/launch_media_settings
- methods/message_methods/launch_messages
- methods/message_methods/send_message
- methods/panelists_methods/focus_panelists
- methods/panelists_methods/launch_panelists
- launchPanelists - Toggles the visibility of the panelists modal.
- methods/panelists_methods/panelists_methods
- methods/panelists_methods/update_panelists
- methods/participants_methods/launch_participants
- methods/participants_methods/message_participants
- methods/participants_methods/mute_participants
- methods/participants_methods/remove_participants
- methods/permissions_methods/launch_permissions
- launchPermissions - Toggles the visibility of the permissions modal.
- methods/permissions_methods/permissions_methods
- methods/permissions_methods/update_participant_permission
- methods/permissions_methods/update_permission_config
- methods/polls_methods/handle_create_poll
- methods/polls_methods/handle_end_poll
- methods/polls_methods/handle_vote_poll
- methods/polls_methods/launch_poll
- methods/polls_methods/poll_updated
- methods/recording_methods/check_pause_state
- methods/recording_methods/check_resume_state
- methods/recording_methods/confirm_recording
- methods/recording_methods/launch_recording
- methods/recording_methods/record_pause_timer
- methods/recording_methods/record_resume_timer
- methods/recording_methods/record_start_timer
- methods/recording_methods/record_update_timer
- methods/recording_methods/start_recording
- methods/recording_methods/stop_recording
- methods/recording_methods/update_recording
- methods/requests_methods/launch_requests
- methods/requests_methods/respond_to_requests
- methods/settings_methods/launch_settings
- methods/settings_methods/modify_settings
- methods/stream_methods/click_audio
- methods/stream_methods/click_chat
- methods/stream_methods/click_video
- methods/stream_methods/switch_audio
- methods/stream_methods/switch_audio_output
- methods/stream_methods/switch_video
- methods/stream_methods/switch_video_alt
- methods/utils/check_limits_and_make_request
- methods/utils/create_join_room
- methods/utils/create_response_join_room
- methods/utils/create_room_on_media_sfu
- methods/utils/format_number
- methods/utils/generate_random_messages
- methods/utils/generate_random_participants
- methods/utils/generate_random_polls
- methods/utils/generate_random_request_list
- methods/utils/generate_random_waiting_room_list
- methods/utils/get_media_devices_list
- Retrieves the list of available media devices.
- methods/utils/get_modal_position
- methods/utils/get_overlay_position
- methods/utils/get_participant_media
- Retrieves the media stream of a participant by ID or name.
- methods/utils/initial_values
- methods/utils/join_room_on_media_sfu
- methods/utils/mediasfu_parameters
- methods/utils/meeting_timer/start_meeting_progress_timer
- methods/utils/mini_audio_player/mini_audio_player
- methods/utils/platform_feature_support
- methods/utils/producer/a_params
- methods/utils/producer/h_params
- methods/utils/producer/screen_params
- methods/utils/producer/v_params
- methods/utils/producer/video_capture_constraints
- methods/utils/sleep
- methods/utils/sound_player
- methods/utils/translation_languages
- Central Language Definitions for Translation Pipeline (Frontend)
- methods/utils/validate_alphanumeric
- methods/waiting_methods/launch_waiting
- methods/waiting_methods/respond_to_waiting
- methods/whiteboard_methods/canvas_capture_stub
- Stub implementation for non-web platforms.
- methods/whiteboard_methods/canvas_capture_web
- Web-specific screen annotation capture implementation using JavaScript interop.
- methods/whiteboard_methods/capture_canvas_stream
- methods/whiteboard_methods/launch_configure_whiteboard
- misc
- producer_client/producer_client_emits/create_device_client
- producer_client/producer_client_emits/join_room_client
- producer_client/producer_client_emits/update_room_parameters_client
- producers
- producers/producer_emits/join_con_room
- producers/producer_emits/join_local_room
- producers/producer_emits/join_room
- producers/socket_receive_methods/all_members
- producers/socket_receive_methods/all_members_rest
- producers/socket_receive_methods/all_waiting_room_members
- producers/socket_receive_methods/ban_participant
- producers/socket_receive_methods/control_media_host
- producers/socket_receive_methods/disconnect
- producers/socket_receive_methods/disconnect_user_self
- producers/socket_receive_methods/get_domains
- producers/socket_receive_methods/host_request_response
- producers/socket_receive_methods/meeting_ended
- producers/socket_receive_methods/meeting_still_there
- producers/socket_receive_methods/meeting_time_remaining
- producers/socket_receive_methods/panelist_receive_methods
- Handler for panelist-related socket events.
- producers/socket_receive_methods/participant_requested
- producers/socket_receive_methods/permission_receive_methods
- Handler for permission-related socket events.
- producers/socket_receive_methods/person_joined
- producers/socket_receive_methods/producer_media_closed
- producers/socket_receive_methods/producer_media_paused
- producers/socket_receive_methods/producer_media_resumed
- producers/socket_receive_methods/re_initiate_recording
- producers/socket_receive_methods/receive_message
- producers/socket_receive_methods/recording_notice
- producers/socket_receive_methods/room_record_params
- producers/socket_receive_methods/screen_producer_id
- producers/socket_receive_methods/start_records
- producers/socket_receive_methods/stopped_recording
- producers/socket_receive_methods/time_left_recording
- producers/socket_receive_methods/translation_receive_methods
- Translation Socket Receive Methods
- producers/socket_receive_methods/update_consuming_domains
- producers/socket_receive_methods/update_media_settings
- producers/socket_receive_methods/updated_co_host
- producers/socket_receive_methods/user_waiting
- sockets
- sockets/socket_manager
- types
- types/custom_builders
- types/modal_style_options
- types/types
- types/ui_overrides
- utils/image_utils