volorio_rtc 0.2.2 copy "volorio_rtc: ^0.2.2" to clipboard
volorio_rtc: ^0.2.2 copied to clipboard

Volorio-branded Flutter RTC client for voice, video, screen share, heartbeat, and usage cutoff.

volorio_rtc #

Volorio Flutter RTC SDK for voice calls, video calls, live rooms, screen share, data messages, and participant-minute billing heartbeat.

Application code imports Volorio APIs only. The underlying media provider is an internal implementation detail of this package.

Keywords #

Flutter RTC, Flutter WebRTC, voice chat SDK, video call SDK, audio room SDK, live streaming SDK, screen sharing, realtime communication, Volorio.

Install #

dependencies:
  volorio_rtc: ^0.2.2

Join a room #

The session must be created by your backend with volorio_server.

import 'package:volorio_core/volorio_core.dart';
import 'package:volorio_rtc/volorio_rtc.dart';

final rtc = VolorioRtcClient();

await rtc.join(
  VolorioRoomSession.fromJson(sessionJsonFromYourBackend),
);

await rtc.enableMicrophone(true);
await rtc.enableCamera(true);

Video quality profiles #

Use setCameraEnabled when you need an explicit capture and encoder profile. The default mobile profile is 720p/30 FPS. Full HD 60 FPS is available for devices, network paths, API key quality grants, and SFU configuration that can carry it.

await rtc.setCameraEnabled(
  true,
  profile: VolorioVideoProfiles.fullHd60,
);

await rtc.setPublishVideoProfile(VolorioVideoProfiles.mobile720p30);

Available built-in profiles:

  • VolorioVideoProfiles.low: 180p/15 FPS
  • VolorioVideoProfiles.medium: 360p/30 FPS
  • VolorioVideoProfiles.mobile720p30: 720p/30 FPS
  • VolorioVideoProfiles.fullHd30: 1080p/30 FPS
  • VolorioVideoProfiles.fullHd60: 1080p/60 FPS

The default simulcast ladder publishes mobile-safe layers for SFU selection:

  • 180p/15 FPS
  • 360p/30 FPS
  • 720p/30 FPS

Subscriber quality #

Use remote quality controls when a participant tile moves between small grid mode and fullscreen mode.

await rtc.setRemoteVideoQuality(
  identity: 'remote_user_1',
  quality: VolorioRemoteVideoQuality.low,
  maxFps: 15,
);

await rtc.setRemoteVideoQuality(
  identity: 'remote_user_1',
  quality: VolorioRemoteVideoQuality.high,
  maxFps: 60,
);

Video stats and watchdog #

Use videoStats for a live debug overlay and videoHealthEvents to react to first frame, freeze, and recovery events.

rtc.videoStats.listen((stats) {
  debugPrint('${stats.identity} ${stats.width}x${stats.height} '
      '${stats.framesPerSecond}fps ${stats.bitrateKbps}kbps');
});

rtc.videoHealthEvents.listen((event) {
  debugPrint('Video health: ${event.type} ${event.identity}');
});

Media controls #

await rtc.enableMicrophone(false);
await rtc.enableCamera(false);
await rtc.shareScreen(true);
await rtc.sendMessage('{"type":"room.ping"}');
await rtc.leave();

Billing and session cutoff #

volorio_rtc automatically calls the heartbeat URL returned by Volorio. If the server responds with 401, 403, or 402, the SDK disconnects locally.

Common causes:

  • 401: missing or invalid backend-created session.
  • 403: API key does not have the requested product or quality grant.
  • 402: no remaining monthly free minutes and insufficient wallet balance.

Mobile permissions #

Your Flutter app still needs platform-level microphone and camera permissions. Volorio handles the room/session API, but iOS and Android permission prompts are owned by your app.

0
likes
120
points
152
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Volorio-branded Flutter RTC client for voice, video, screen share, heartbeat, and usage cutoff.

Homepage
Repository (GitHub)

Topics

#volorio #rtc #webrtc #video-call #audio-call

License

MIT (license)

Dependencies

flutter, http, livekit_client, volorio_core

More

Packages that depend on volorio_rtc