addPeerEvents method Null safety

void addPeerEvents(
  1. PeerConnection instanceClass,
  2. RTCPeerConnection peer
)

Emits peer events.

instanceClass - PeerConnection instance. RTCPeerConnection peer - Peer instance. PeerConnection#track PeerConnection#connectionStateChange

Implementation

void addPeerEvents(PeerConnection instanceClass, RTCPeerConnection peer) {
  peer.onTrack = (event) async {
    _logger.i('New track from peer.');
    _logger.d('Track event value: $event');

    // Listen for remote tracks events for resolving pending addRemoteTrack calls.
    // TO DO
    // if (event.transceiver != null) {}
    // ;

    instanceClass.emit(webRTCEvents['track'], this, event.streams[0]);
  };
  if (peer.connectionState != null) {
    peer.onConnectionState = (event) {
      _logger.i('Peer connection state change: ${peer.connectionState}');
      instanceClass.emit(webRTCEvents['connectionStateChange'], this,
          peer.iceConnectionState);
    };
  } else {
    peer.onIceConnectionState = (RTCIceConnectionState state) {
      _logger
          .i('Peer ICE connection state change: ${peer.iceConnectionState}');
      instanceClass.emit(webRTCEvents['connectionStateChange'], this,
          peer.iceConnectionState);
    };
  }

  // No renegotationNeeded
  peer.onRenegotiationNeeded = () async {};
}