CometChat Calls SDK v5 — Video Controls (Flutter)
Overview
Control video during an active call session — pause/resume camera and switch between front/back cameras.
Key Imports
import 'package:cometchat_calls_sdk/cometchat_calls_sdk.dart';
Implementation
Pause/Resume Video
final session = CallSession.getInstance();
// Pause (turn off camera)
await session?.pauseVideo();
// Resume (turn on camera)
await session?.resumeVideo();
// Toggle
await session?.togglePauseVideo();
// Check state
bool isPaused = session?.isVideoPaused ?? false;
Switch Camera
final session = CallSession.getInstance();
// Switch between front and back camera
await session?.switchCamera();
// Alias method
await session?.toggleCameraSource();
Set Initial Camera in Settings
final settings = SessionSettingsBuilder()
.setInitialCameraFacing(CameraFacing.front) // or CameraFacing.back
.startVideoPaused(false)
.build();
Listen for Video Events
class MyMediaListener implements MediaEventListeners {
@override
void onVideoPaused() {
debugPrint("Video paused");
}
@override
void onVideoResumed() {
debugPrint("Video resumed");
}
@override
void onCameraFacingChanged(CameraFacing facing) {
debugPrint("Camera switched to: ${facing.value}");
}
}
CameraFacing Enum
CameraFacing.front— Front-facing cameraCameraFacing.back— Rear-facing camera
Gotchas
- Video controls only work during an active session
isVideoPausedreflects the local video state- Camera permission must be granted before starting video
switchCamera()toggles between front and back — no explicit set
Sample App Reference
lib/screens/call_screen.dart— Video control integration