8000 Fix PeerConnectionState for darwin. · next-coder/flutter-webrtc@999bb42 · GitHub
[go: up one dir, main page]

Skip to content

Commit 999bb42

Browse files
committed
Fix PeerConnectionState for darwin.
1 parent 0f7ac57 commit 999bb42

File tree

3 files changed

+32
-10
lines changed

3 files changed

+32
-10
lines changed

android/src/main/java/com/cloudwebrtc/webrtc/PeerConnectionObserver.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -498,16 +498,16 @@ public void onSignalingChange(PeerConnection.SignalingState signalingState) {
498498
sendEvent(params);
499499
}
500500

501-
@Override
502-
public void onConnectionChange(PeerConnection.PeerConnectionState connectionState) {
503-
Log.d(TAG, "onConnectionChange" + connectionState.name());
504-
ConstraintsMap params = new ConstraintsMap();
505-
params.putString("event", "peerConnectionState");
506-
params.putString("state", connectionStateString(connectionState));
507-
sendEvent(params);
508-
}
501+
@Override
502+
public void onConnectionChange(PeerConnection.PeerConnectionState connectionState) {
503+
Log.d(TAG, "onConnectionChange" + connectionState.name());
504+
ConstraintsMap params = new ConstraintsMap();
505+
params.putString("event", "peerConnectionState");
506+
params.putString("state", connectionStateString(connectionState));
507+
sendEvent(params);
508+
}
509509

510-
@Nullable
510+
@Nullable
511511
private String iceConnectionStateString(PeerConnection.IceConnectionState iceConnectionState) {
512512
switch (iceConnectionState) {
513513
case NEW:

common/darwin/Classes/FlutterRTCPeerConnection.m

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,17 @@ - (NSString *)stringForSignalingState:(RTCSignalingState)state {
253253
return nil;
254254
}
255255

256+
- (NSString *)stringForPeerConnectionState:(RTCPeerConnectionState)state {
257+
switch (state) {
258+
case RTCPeerConnectionStateNew: return @"new";
259+
case RTCPeerConnectionStateConnecting: return @"connecting";
260+
case RTCPeerConnectionStateConnected: return @"connected";
261+
case RTCPeerConnectionStateDisconnected: return @"disconnected";
262+
case RTCPeerConnectionStateFailed: return @"failed";
263+
case RTCPeerConnectionStateClosed: return @"closed";
264+
}
265+
return nil;
266+
}
256267

257268
/**
258269
* Parses the constraint keys and values of a specific JavaScript object into
@@ -493,7 +504,13 @@ - (void)peerConnection:(RTCPeerConnection*)peerConnection didOpenDataChannel:(RT
493504
/** Called any time the PeerConnectionState changes. */
494505
- (void)peerConnection:(RTCPeerConnection *)peerConnection
495506
didChangeConnectionState:(RTCPeerConnectionState)newState {
496-
507+
FlutterEventSink eventSink = peerConnection.eventSink;
508+
if(eventSink){
509+
eventSink(@{
510+
@"event" : @"peerConnectionState",
511+
@"state": [self stringForPeerConnectionState:newState]
512+
});
513+
}
497514
}
498515

499516
- (void)peerConnection:(RTCPeerConnection *)peerConnection

example/lib/src/loopback_sample.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,10 @@ class _MyAppState extends State<LoopBackSample> {
7070
print(state);
7171
}
7272

73+
void _onPeerConnectionState(RTCPeerConnectionState state) {
74+
print(state);
75+
}
76+
7377
void _onAddStream(MediaStream stream) {
7478
print('New stream: ' + stream.id);
7579
//_remoteRenderer.srcObject = stream;
@@ -143,6 +147,7 @@ class _MyAppState extends State<LoopBackSample> {
143147
_peerConnection.onSignalingState = _onSignalingState;
144148
_peerConnection.onIceGatheringState = _onIceGatheringState;
145149
_peerConnection.onIceConnectionState = _onIceConnectionState;
150+
_peerConnection.onConnectionState = _onPeerConnectionState;
146151
_peerConnection.onAddStream = _onAddStream;
147152
_peerConnection.onRemoveStream = _onRemoveStream;
148153
_peerConnection.onIceCandidate = _onCandidate;

0 commit comments

Comments
 (0)
0