ivs_broadcaster 0.0.6 copy "ivs_broadcaster: ^0.0.6" to clipboard
ivs_broadcaster: ^0.0.6 copied to clipboard

IVS Broadcaster SDK for Flutter

example/lib/main.dart

import 'dart:developer';

import 'package:camera/camera.dart';
import 'package:flutter/material.dart';
import 'package:ivs_broadcaster/ivs_broadcaster.dart';
import 'package:ivs_broadcaster_example/home_page.dart';

late List<CameraDescription> cameras;
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  cameras = await availableCameras();
  runApp(const MyApp());
}

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

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: BroadCastWidget(),
    );
  }
}

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

  @override
  State<BroadCastWidget> createState() => _BroadCastWidgetState();
}

class _BroadCastWidgetState extends State<BroadCastWidget> {
  IvsBroadcaster? ivsBroadcaster;
  late CameraController controller;

  @override
  void initState() {
    super.initState();
    ivsBroadcaster = IvsBroadcaster.instance;
    ivsBroadcaster!.broadcastStateController.stream.listen((event) {
      log(event.name.toString());
    });
    // controller = CameraController(cameras[0], ResolutionPreset.medium)
    //   ..initialize().then((_) {
    //     if (!mounted) {
    //       return;
    //     }
    //     setState(() {});
    //   });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          children: [
            ElevatedButton(
                onPressed: () async {
                  Navigator.push(
                    context,
                    MaterialPageRoute(
                      builder: (context) => HomePage(
                        ivsBroadcaster: ivsBroadcaster,
                      ),
                    ),
                  );
                },
                // child: controller.value.isInitialized
                //     ? CameraPreview(controller)
                //     : const SizedBox()),
                child: const Text('Start Broadcast')),
            //toggle Camera
            ElevatedButton(
              onPressed: () {
                controller = CameraController(
                  controller.description == cameras[0]
                      ? cameras[1]
                      : cameras[0],
                  ResolutionPreset.medium,
                );
                controller.initialize().then((_) {
                  if (!mounted) {
                    return;
                  }
                  setState(() {});
                });
              },
              child: const Text('Toggle Camera'),
            ),
          ],
        ),
      ),
    );
  }
}