initialize method

  1. @override
Future<void> initialize()
override

Implementation

@override
Future<void> initialize() async {
  pc = await adapter.createPeerConnection(
    iceConfiguration:
        config ??
        const IceConfiguration(
          iceServers: [
            IceServer(urls: ['stun:stun4.l.google.com:19302']),
          ],
        ),
  );

  pc!.onIceCandidate.listen((candidate) {
    print('Sending ICE candidate to ${peerId}');
    sendSignal(SignalingMessageType.candidate, {
      'candidate': candidate.candidate,
      'sdpMid': candidate.sdpMid,
      'sdpMLineIndex': candidate.sdpMLineIndex,
    });
  });

  pc!.onTrack.listen((stream) {
    print(
      'Received remote stream from $peerId, tracks: ${stream.getTracks().length}',
    );

    // If we already have this stream, don't replace it, just notify
    if (remoteStream?.id == stream.id) {
      emit(ConnectionEvent.stream.name, this, stream);
      return;
    }

    remoteStream = stream;
    isOpen = true;
    emit(ConnectionEvent.stream.name, this, stream);
  });

  // Add local stream if present
  if (localStream != null) {
    print('Adding local stream to peer connection');
    await pc!.addStream(localStream!);
  }
}