startLivestream method

Future<void> startLivestream(
  1. dynamic outputs, {
  2. Map<String, dynamic>? config,
})

Implementation

Future<void> startLivestream(outputs, {Map<String, dynamic>? config}) async {
  Map<String, dynamic> data = {};
  if (outputs != null) data["outputs"] = outputs;
  if (config != null) data["config"] = config;

  Span? startLivestreamSpan;
  try {
    if (videoSDKTelemetery != null) {
      startLivestreamSpan = videoSDKTelemetery!.trace(
        spanName: 'startLivestream() Start',
        attributes: [
          Attribute.fromString('outputs',
              outputs != null ? outputs.toString() : 'outputs Not Specify'),
          Attribute.fromString('config',
              config != null ? config.toString() : 'config Not Specify'),
        ],
      );
    }
  } catch (error) {}

  try {
    await _webSocket!.socket.request('startLivestream', data);

    if (startLivestreamSpan != null) {
      videoSDKTelemetery!.completeSpan(
          span: startLivestreamSpan,
          status: StatusCode.ok,
          message: 'startLivestream() End');
    }
  } catch (error) {
    //
    VideoSDKLog.createLog(
        message: "Error in startLivestream() \n ${error.toString()}",
        logLevel: "ERROR");

    //
    log("Error while starting livestreaming $error");

    if (startLivestreamSpan != null) {
      videoSDKTelemetery!.completeSpan(
          span: startLivestreamSpan,
          status: StatusCode.error,
          message: 'startLivestream() Failed \n ${error.toString()}');
    }
  }
}