quickrtc_flutter_client 1.0.0 copy "quickrtc_flutter_client: ^1.0.0" to clipboard
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.

Learn More #

2
likes
0
points
13
downloads

Publisher

unverified uploader

Weekly Downloads

A Flutter WebRTC client library built on MediaSoup with Provider state management for real-time video conferencing.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

collection, equatable, events2, flutter, flutter_webrtc, freezed_annotation, h264_profile_level_id, json_annotation, logger, provider, sdp_transform, socket_io_client

More

Packages that depend on quickrtc_flutter_client

Packages that implement quickrtc_flutter_client