addRemoteTrack method Null safety

dynamic addRemoteTrack(
  1. dynamic media,
  2. List<MediaStream> streams
)

Add remote receving track.

media - Media kind ('audio' | 'video'). streams - Streams the track will belong to. Future that will be resolved when the RTCRtpTransceiver is assigned an mid value.

Implementation

addRemoteTrack(media, List<MediaStream> streams) async {
  Completer completer = Completer();
  var transceiverCompleter = RTCRtpTransceiverCompleter(completer);
  try {
    for (var stream in streams) {
      stream.getTracks().forEach((track) async {
        transceiverCompleter.transceiver = await peer!.addTransceiver(
            track: track,
            kind: media,
            init: RTCRtpTransceiverInit(
                direction: TransceiverDirection.RecvOnly));
        stream.addTrack(transceiverCompleter.transceiver!.receiver.track!);
        transceiverCompleter.completer = completer;
        return completer.future;
      });
    }
  } catch (e) {
    throw Exception(e);
  }
}