@@ -254,7 +254,11 @@ public void onMethodCall(MethodCall call, Result notSafeResult) {
254
254
String peerConnectionId = call .argument ("peerConnectionId" );
255
255
peerConnectionClose (peerConnectionId );
256
256
result .success (null );
257
- } else if (call .method .equals ("createVideoRenderer" )) {
257
+ } else if (call .method .equals ("peerConnectionDispose" )){
258
+ String peerConnectionId = call .argument ("peerConnectionId" );
259
+ peerConnectionClose (peerConnectionId );
260
+ result .success (null );
261
+ }else if (call .method .equals ("createVideoRenderer" )) {
258
262
TextureRegistry .SurfaceTextureEntry entry = textures .createSurfaceTexture ();
259
263
SurfaceTexture surfaceTexture = entry .surfaceTexture ();
260
264
FlutterRTCVideoRenderer render = new FlutterRTCVideoRenderer (surfaceTexture , entry );
@@ -414,27 +418,27 @@ private List<PeerConnection.IceServer> createIceServers(ConstraintsArray iceServ
414
418
boolean hasUsernameAndCredential = iceServerMap .hasKey ("username" ) && iceServerMap .hasKey ("credential" );
415
419
if (iceServerMap .hasKey ("url" )) {
416
420
if (hasUsernameAndCredential ) {
417
- iceServers .add (new PeerConnection .IceServer (iceServerMap .getString ("url" ), iceServerMap .getString ("username" ), iceServerMap .getString ("credential" )));
421
+ iceServers .add (PeerConnection .IceServer . builder (iceServerMap .getString ("url" )). setUsername ( iceServerMap .getString ("username" )). setPassword ( iceServerMap .getString ("credential" )). createIceServer ( ));
418
422
} else {
419
- iceServers .add (new PeerConnection .IceServer (iceServerMap .getString ("url" )));
423
+ iceServers .add (PeerConnection .IceServer . builder (iceServerMap .getString ("url" )). createIceServer ( ));
420
424
}
421
425
} else if (iceServerMap .hasKey ("urls" )) {
422
426
switch (iceServerMap .getType ("urls" )) {
423
427
case String :
424
428
if (hasUsernameAndCredential ) {
425
- iceServers .add (new PeerConnection .IceServer (iceServerMap .getString ("urls" ), iceServerMap .getString ("username" ), iceServerMap .getString ("credential" )));
429
+ iceServers .add (PeerConnection .IceServer . builder (iceServerMap .getString ("urls" )). setUsername ( iceServerMap .getString ("username" )). setPassword ( iceServerMap .getString ("credential" )). createIceServer ( ));
426
430
} else {
427
- iceServers .add (new PeerConnection .IceServer (iceServerMap .getString ("urls" )));
431
+ iceServers .add (PeerConnection .IceServer . builder (iceServerMap .getString ("urls" )). createIceServer ( ));
428
432
}
429
433
break ;
430
434
case Array :
431
435
ConstraintsArray urls = iceServerMap .getArray ("urls" );
432
436
for (int j = 0 ; j < urls .size (); j ++) {
433
437
String url = urls .getString (j );
434
438
if (hasUsernameAndCredential ) {
435
- iceServers .add (new PeerConnection .IceServer ( url , iceServerMap .getString ("username" ), iceServerMap .getString ("credential" )));
439
+ iceServers .add (PeerConnection .IceServer . builder ( iceServerMap . getString ( url )). setUsername ( iceServerMap .getString ("username" )). setPassword ( iceServerMap .getString ("credential" )). createIceServer ( ));
436
440
} else {
437
- iceServers .add (new PeerConnection .IceServer (url ));
441
+ iceServers .add (PeerConnection .IceServer . builder (url ). createIceServer ( ));
438
442
}
439
443
}
440
444
break ;
@@ -1184,6 +1188,14 @@ public void peerConnectionClose(final String id) {
1184
1188
Log .d (TAG , "peerConnectionClose() peerConnection is null" );
1185
1189
} else {
1186
1190
pco .close ();
1191
+ }
1192
+ }
1193
+ public void peerConnectionDispose (final String id ) {
1194
+ PeerConnectionObserver pco = mPeerConnectionObservers .get (id );
1195
+ if (pco == null || pco .getPeerConnection () == null ) {
1196
+ Log .d (TAG , "peerConnectionDispose() peerConnection is null" );
1197
+ } else {
1198
+ pco .dispose ();
1187
1199
mPeerConnectionObservers .remove (id );
1188
1200
}
1189
1201
}
0 commit comments