@@ -38,13 +38,15 @@ class PeerConnectionObserver implements PeerConnection.Observer, EventChannel.St
3838 private BinaryMessenger messenger ;
3939 private final String id ;
4040 private PeerConnection peerConnection ;
41+ private PeerConnection .RTCConfiguration configuration ;
4142 final Map <String , MediaStream > remoteStreams = new HashMap <>();
4243 final Map <String , MediaStreamTrack > remoteTracks = new HashMap <>();
4344 private final StateProvider stateProvider ;
4445 private final EventChannel eventChannel ;
4546 private EventChannel .EventSink eventSink ;
4647
47- PeerConnectionObserver (StateProvider stateProvider , BinaryMessenger messenger , String id ) {
48+ PeerConnectionObserver (PeerConnection .RTCConfiguration configuration , StateProvider stateProvider , BinaryMessenger messenger , String id ) {
49+ this .configuration = configuration ;
4850 this .stateProvider = stateProvider ;
4951 this .messenger = messenger ;
5052 this .id = id ;
@@ -430,11 +432,13 @@ public void onAddTrack(RtpReceiver receiver, MediaStream[] mediaStreams) {
430432 params .putMap ("track" , mediaTrackToMap (receiver .track ()));
431433 params .putMap ("receiver" , rtpReceiverToMap (receiver ));
432434
433- List <RtpTransceiver > transceivers = peerConnection .getTransceivers ();
434- for ( RtpTransceiver transceiver : transceivers ) {
435- if (transceiver .getReceiver () != null && receiver .id ().equals (transceiver .getReceiver ().id ())) {
436- params .putMap ("transceiver" , transceiverToMap (transceiver ));
437- }
435+ if (this .configuration .sdpSemantics == PeerConnection .SdpSemantics .UNIFIED_PLAN ) {
436+ List <RtpTransceiver > transceivers = peerConnection .getTransceivers ();
437+ for ( RtpTransceiver transceiver : transceivers ) {
438+ if (transceiver .getReceiver () != null && receiver .id ().equals (transceiver .getReceiver ().id ())) {
439+ params .putMap ("transceiver" , transceiverToMap (transceiver ));
440+ }
441+ }
438442 }
439443 sendEvent (params );
440444 }
0 commit comments