quickrtc_flutter_client 1.0.0
quickrtc_flutter_client: ^1.0.0 copied to clipboard
A Flutter WebRTC client library built on MediaSoup with Provider state management for real-time video conferencing.
example/README.md
QuickRTC Flutter Example #
Code snippets demonstrating how to use the QuickRTC Flutter Client SDK.
Quick Start #
1. Socket Connection #
import 'package:socket_io_client/socket_io_client.dart' as io;
final socket = io.io(
'https://your-server.com:3000',
io.OptionBuilder()
.setTransports(['websocket'])
.disableAutoConnect()
.build(),
);
socket.connect();
2. Create Controller & Join Meeting #
import 'package:quickrtc_flutter_client/quickrtc_flutter_client.dart';
final controller = QuickRTCController(socket: socket, debug: true);
await controller.joinMeeting(
conferenceId: 'my-room',
participantName: 'John',
);
3. Start Camera & Microphone #
// Get local media
final media = await QuickRTCStatic.getLocalMedia(MediaConfig.audioVideo());
// Publish to meeting
await controller.produce(
ProduceInput.fromTracksWithTypes(media.tracksWithTypes),
);
4. Toggle Controls #
await controller.toggleMicrophoneMute(); // Mute/unmute mic
await controller.toggleCameraPause(); // Pause/resume camera
5. Screen Sharing #
// Mobile
final media = await QuickRTCStatic.getLocalMedia(MediaConfig.screenShareOnly());
// Desktop (with picker dialog)
final media = await QuickRTCStatic.getScreenShareWithPicker(context);
// Publish
await controller.produce(
ProduceInput.fromTrack(media.screenshareTrack!, type: StreamType.screenshare),
);
6. Render Video #
// Local video
QuickRTCMediaRenderer(
stream: localStream,
mirror: true,
isLocal: true,
participantName: 'You',
)
// Remote video
QuickRTCMediaRenderer(
remoteStream: participant.videoStream,
participantName: participant.name,
)
// Remote audio (invisible - plays audio)
QuickRTCAudioRenderers(participants: state.participantList)
7. Listen to State Changes #
ListenableBuilder(
listenable: controller,
builder: (context, _) {
final state = controller.state;
return Text('Participants: ${state.participantCount}');
},
)
8. Leave Meeting #
await controller.leaveMeeting();
controller.dispose();
socket.disconnect();
Files #
- lib/quickrtc_snippets.dart - All code snippets in one file
Full Example #
For a complete working app, see quickrtc-example/flutter-client.