Skip to main content

qriib_meet 0.4.0 copy "qriib_meet: ^0.4.0" to clipboard
qriib_meet: ^0.4.0 copied to clipboard

Flutter SDK for Qriib room management and embedded audio/video meetings, with customizable meeting controls, pre-join preview and screen sharing.

example/example.md

Join a meeting using a fresh link #

This minimal Flutter application targets the current source checkout, using only its public package API. Published 0.2.1 has a different API surface; use the path dependency described in the integration guide for this example. Your trusted backend must supply a fresh final_link from the Qriib create/join/start response; the SDK does not create a room in this example. Do not ship a project secret in an untrusted client application.

Add qriib_meet to your Flutter app, apply the Android/iOS camera and microphone setup in the integration guide, and replace lib/main.dart with the following code. Supply QRIIB_FINAL_LINK locally for a short development session. Build-time defines are not secure secret storage; production apps should obtain a fresh link through their authenticated backend.

import 'package:flutter/material.dart';
import 'package:qriib_meet/qriib_meet.dart';

void main() => runApp(const MaterialApp(home: JoinMeetingPage()));

class JoinMeetingPage extends StatefulWidget {
  const JoinMeetingPage({super.key});

  @override
  State<JoinMeetingPage> createState() => _JoinMeetingPageState();
}

class _JoinMeetingPageState extends State<JoinMeetingPage> {
  final _meetings = QriibMeetings();
  bool _joining = false;
  String? _error;

  Future<void> _join() async {
    const finalLink = String.fromEnvironment('QRIIB_FINAL_LINK');
    if (finalLink.isEmpty) {
      setState(() => _error = 'Supply a fresh meeting link first.');
      return;
    }
    setState(() {
      _joining = true;
      _error = null;
    });
    try {
      await _meetings.join(
        context: context,
        finalLink: finalLink,
        configuration: const QriibMeetingConfiguration(
          title: 'Team meeting',
          preJoin: QriibPreJoinConfiguration(enabled: true),
        ),
      );
    } catch (_) {
      // Do not log the link, credentials, or raw server response.
      if (mounted) {
        setState(
            () => _error = 'Unable to join. Request a fresh link and retry.');
      }
    } finally {
      if (mounted) setState(() => _joining = false);
    }
  }

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(title: const Text('Qriib meeting')),
        body: Center(
          child: Column(
            mainAxisSize: MainAxisSize.min,
            children: [
              FilledButton(
                onPressed: _joining ? null : _join,
                child: Text(_joining ? 'Meeting open…' : 'Join meeting'),
              ),
              if (_error != null) Text(_error!),
            ],
          ),
        ),
      );
}

Both camera and microphone permissions are requested. Cancelling the pre-join screen does not connect to the meeting. The default meeting view leaves its session when disposed. This credential-free QriibMeetings() example does not provide recording access; recording requires a configured service and project credentials in a suitably trusted environment.

Full playground #

The repository's example app exercises rooms, recording commands, customization and pre-join behavior. Its offline demo uses fake sessions to render the actual SDK views without Qriib credentials; it does not prove media connectivity or server recording. Run the playground on Android or iOS:

cd example
flutter pub get
flutter run

See recording documentation for current-source recording support and release notes for release availability.

2
likes
60
points
902
downloads

Documentation

Documentation
API reference

Publisher

unverified uploader

Weekly Downloads

Flutter SDK for Qriib room management and embedded audio/video meetings, with customizable meeting controls, pre-join preview and screen sharing.

Homepage
Repository

Topics

#video-conferencing #webrtc #meetings #screen-sharing

License

Apache-2.0 (license)

Dependencies

async, collection, connectivity_plus, crypto, dart_jsonwebtoken, dart_webrtc, device_info_plus, dio, fixnum, flutter, flutter_webrtc, http, json_annotation, logging, meta, mime_type, path, permission_handler, pretty_dio_logger, protobuf, sdp_transform, synchronized, uuid, web

More

Packages that depend on qriib_meet

Packages that implement qriib_meet