videosdk-live/videosdk-rtc-flutter-sdk-example

Error while starting livestream

imsujan276 opened this issue · 1 comments

I am trying to start livestream using the videosdk package. But getting the error saying "Error while starting livestreaming Null check operator used on a null value"

Please suggest me how can I resolve this issue?

CODE:

import 'dart:developer';

import 'package:flutter/material.dart';
import 'package:videosdk/videosdk.dart';
import 'package:videosdkTest/meeting_controls.dart';

class LiveStreamPage extends StatefulWidget {
  final String meetingId;
  final String token;
  final Mode mode;
  final String displayName;
  const LiveStreamPage({
    super.key,
    required this.meetingId,
    required this.token,
    required this.mode,
    required this.displayName,
  });

  @override
  State<LiveStreamPage> createState() => _LiveStreamPageState();
}

class _LiveStreamPageState extends State<LiveStreamPage> {
  late Room _room;
  var micEnabled = true;
  var camEnabled = true;
  String hlsState = "HLS_STOPPED";

  @override
  void initState() {
    super.initState();
    _room = VideoSDK.createRoom(
      roomId: widget.meetingId,
      token: widget.token,
      mode: widget.mode,
      displayName: widget.displayName,
      micEnabled: true,
      camEnabled: true,
      defaultCameraIndex: 1,
    );
    setupRoomEventListener();
  }

  void setupRoomEventListener() {
    _room.on(Events.liveStreamStateChanged, (String status) {
      //Status can be :: LIVESTREAM_STARTING
      //Status can be :: LIVESTREAM_STARTED
      //Status can be :: LIVESTREAM_STOPPING
      //Status can be :: LIVESTREAM_STOPPED
      log("Meeting Livestream status : $status");
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Live Stream Page"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                var outputs = [
                  {
                    'url': "rtmp://a.rtmp.youtube.com/live2",
                    'streamKey': "aiskdjbakdjsbn",
                  },
                ];
                var liveStreamConfig = {
                  'layout': {
                    'type': 'GRID',
                    'priority': 'SPEAKER',
                    'gridSize': 4,
                  },
                  'theme': "LIGHT",
                };
                _room.startLivestream(outputs, config: liveStreamConfig);
              },
              child: const Text("Start Livestream"),
            ),
            ElevatedButton(
              onPressed: () {
                _room.stopLivestream();
              },
              child: const Text("Stop Livestream"),
            ),
            MeetingControls(
              hlsState: hlsState,
              onToggleMicButtonPressed: () {
                micEnabled ? _room.muteMic() : _room.unmuteMic();
                micEnabled = !micEnabled;
              },
              onToggleCameraButtonPressed: () {
                camEnabled ? _room.disableCam() : _room.enableCam();
                camEnabled = !camEnabled;
              },
            )
          ],
        ),
      ),
    );
  }
}

needed to use _room.join() beor starting the livestream