@@ -255,6 +255,9 @@ void FlutterPeerConnection::RTCPeerConnectionDispose(
255
255
auto it = base_->peerconnection_observers_ .find (uuid);
256
256
if (it != base_->peerconnection_observers_ .end ())
257
257
base_->peerconnection_observers_ .erase (it);
258
+ auto it2 = base_->peerconnections_ .find (uuid);
259
+ if (it2 != base_->peerconnections_ .end ())
260
+ base_->peerconnections_ .erase (it2);
258
261
result->Success ();
259
262
}
260
263
@@ -900,6 +903,7 @@ static const char* signalingStateString(RTCSignalingState state) {
900
903
}
901
904
return " " ;
902
905
}
906
+
903
907
void FlutterPeerConnectionObserver::OnSignalingState (RTCSignalingState state) {
904
908
if (event_sink_ != nullptr ) {
905
909
EncodableMap params;
@@ -909,6 +913,35 @@ void FlutterPeerConnectionObserver::OnSignalingState(RTCSignalingState state) {
909
913
}
910
914
}
911
915
916
+
917
+ static const char *peerConnectionStateString (RTCPeerConnectionState state) {
918
+ switch (state) {
919
+ case RTCPeerConnectionStateNew:
920
+ return " new" ;
921
+ case RTCPeerConnectionStateConnecting:
922
+ return " connecting" ;
923
+ case RTCPeerConnectionStateConnected:
924
+ return " connected" ;
925
+ case RTCPeerConnectionStateDisconnected:
926
+ return " disconnected" ;
927
+ case RTCPeerConnectionStateFailed:
928
+ return " failed" ;
929
+ case RTCPeerConnectionStateClosed:
930
+ return " closed" ;
931
+ }
932
+ return " " ;
933
+ }
934
+
935
+
936
+ void FlutterPeerConnectionObserver::OnPeerConnectionState (RTCPeerConnectionState state) {
937
+ if (event_sink_ != nullptr ) {
938
+ EncodableMap params;
939
+ params[EncodableValue (" event" )] = " peerConnectionState" ;
940
+ params[EncodableValue (" state" )] = peerConnectionStateString (state);
941
+ event_sink_->Success (EncodableValue (params));
942
+ }
943
+ }
944
+
912
945
static const char * iceGatheringStateString (RTCIceGatheringState state) {
913
946
switch (state) {
914
947
case RTCIceGatheringStateNew:
0 commit comments