setConsumerQuality method

Future<void> setConsumerQuality(
  1. dynamic consumerId,
  2. String quality
)

Implementation

Future<void> setConsumerQuality(consumerId, String quality) async {
  late int? spatialLayers;
  late int? temporalLayers;

  try {
    if (videoSDKTelemetery != null) {
      videoSDKTelemetery!.traceAutoComplete(
        spanName: 'Setting "$quality" Quality for consumerId $consumerId',
      );
    }

    if (quality == 'low' || quality == 'med' || quality == 'high') {
      final layers = VIDEO_LAYERS[_maxResolution]![quality];
      spatialLayers = layers?['s'];
      temporalLayers = layers?['t'];
    } else {
      String sCh = quality[0];
      String tCh = quality[2];
      int s = int.parse(quality[1]);
      int t = int.parse(quality[3]);

      if (s > 2 || t > 2 || sCh != "s" || tCh != "t") {
        throw ("");
      }

      spatialLayers = s;
      temporalLayers = t;
    }

    _setConsumerPreferredLayers(consumerId, spatialLayers, temporalLayers);
  } catch (error) {
    //
    VideoSDKLog.createLog(
        message: "Error in setConsumerQuality() \n ${error.toString()}",
        logLevel: "ERROR");
    //
    log("invalid quality");
  }
}