replaceTrack method Null safety

void replaceTrack(
  1. MediaStreamTrack mediaStreamTrack
)

Replace current audio or video track that is being broadcasted.

mediaStreamTrack - New audio or video track to replace the current one.

Implementation

void replaceTrack(MediaStreamTrack mediaStreamTrack) async {
  if (peer == null) {
    _logger.e('Could not change track if there is not an active connection.');
    return;
  }

  try {
    RTCRtpSender? currentSender = (await peer!.getSenders()).firstWhere(
        (s) => s.track?.kind == mediaStreamTrack.kind,
        orElse: () => ());
    currentSender.replaceTrack(mediaStreamTrack);
  } catch (e) {
    _logger
        .e('There is no ${mediaStreamTrack.kind} track in active broadcast.');
  }
}