Participant constructor

Participant(
  1. BuildContext _context,
  2. String id,
  3. String displayName,
  4. bool isLocal,
)

Implementation

Participant(this._context, this.id, this.displayName, this.isLocal) {
  this._participantEventEmitter = new EventEmitter();
  this.streams = new Map();

  this._eventEmitter = _context.read<RoomClientRepository>().eventEmitter;

  // handle stream-enabled
  this._eventEmitter.on(
    "stream-enabled-$id",
    (data) {
      if (data['audio'] != null) {
        final consumer = data["audio"];

        final Stream newStream = new Stream(
          context: this._context,
          consumer: consumer,
        );

        this._addConsumer(newStream);
      } else if (data["renderer"] != null && data["video"] != null) {
        final consumer = data["video"];
        final renderer = data["renderer"];

        final Stream newStream = new Stream(
          context: this._context,
          consumer: consumer,
          renderer: renderer,
        );

        this._addConsumer(newStream);
      } else if (data["shareRenderer"] != null && data["share"] != null) {
        final consumer = data["share"];
        final shareRenderer = data["shareRenderer"];

        final Stream newStream = new Stream(
          context: this._context,
          consumer: consumer,
          renderer: shareRenderer,
        );

        this._addConsumer(newStream);
      }
    },
  );

  // handle stream-disabled
  this._eventEmitter.on(
    "stream-disabled-$id",
    (data) {
      if (data['audioConsumerId'] != null) {
        final consumerId = data['audioConsumerId'];
        this._removeConsumer(consumerId);
      } else if (data["renderer"] != null &&
          data["videoConsumerId"] != null) {
        final consumerId = data['videoConsumerId'];
        this._removeConsumer(consumerId);
      } else if (data["shareRenderer"] != null &&
          data["shareConsumerId"] != null) {
        final consumerId = data['shareConsumerId'];
        this._removeConsumer(consumerId);
      }
    },
  );

  // handle stream-paused
  this._eventEmitter.on(
    "stream-paused-$id",
    (data) {
      String audioKeyType = 'audioConsumerId';
      String videoKeyType = 'videoConsumerId';
      String shareKeyType = 'shareConsumerId';

      if (data[audioKeyType] != null) {
        this._pauseConsumer(audioKeyType, data);
      } else if (data[videoKeyType] != null) {
        this._pauseConsumer(videoKeyType, data);
      } else if (data[shareKeyType] != null) {
        this._pauseConsumer(shareKeyType, data);
      }
    },
  );

  // handle stream-resumed
  this._eventEmitter.on(
    "stream-resumed-$id",
    (data) {
      String audioKeyType = 'audioConsumerId';
      String videoKeyType = 'videoConsumerId';
      String shareKeyType = 'shareConsumerId';

      if (data[audioKeyType] != null) {
        this._resumeConsumer(audioKeyType, data);
      } else if (data[videoKeyType] != null) {
        this._resumeConsumer(videoKeyType, data);
      } else if (data[shareKeyType] != null) {
        this._resumeConsumer(shareKeyType, data);
      }
    },
  );

  // handle quality-changed
  this._eventEmitter.on(
        "quality-changed-$id",
        (data) => _setLayers(data['spatialLayer'], data['temporalLayer']),
      );
}