8000 Merge pull request #113 from cloudwebrtc/master · flutter-webrtc/flutter-webrtc@b32205b · GitHub
[go: up one dir, main page]

Skip to content

Commit b32205b

Browse files
authored
Merge pull request #113 from cloudwebrtc/master
Merge pull request from master
2 parents 7112405 + 72713dc commit b32205b

File tree

4 files changed

+25
-10
lines changed

4 files changed

+25
-10
lines changed

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ android {
4040
}
4141

4242
dependencies {
43-
api 'org.webrtc:google-webrtc:1.0.26885'
43+
api 'org.webrtc:google-webrtc:1.0.28262'
4444
implementation "androidx.annotation:annotation:1.0.1"
4545
}

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

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,11 @@ public void onMethodCall(MethodCall call, Result notSafeResult) {
254254
String peerConnectionId = call.argument("peerConnectionId");
255255
peerConnectionClose(peerConnectionId);
256256
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")) {
258262
TextureRegistry.SurfaceTextureEntry entry = textures.createSurfaceTexture();
259263
SurfaceTexture surfaceTexture = entry.surfaceTexture();
260264
FlutterRTCVideoRenderer render = new FlutterRTCVideoRenderer(surfaceTexture, entry);
@@ -414,27 +418,27 @@ private List<PeerConnection.IceServer> createIceServers(ConstraintsArray iceServ
414418
boolean hasUsernameAndCredential = iceServerMap.hasKey("username") && iceServerMap.hasKey("credential");
415419
if (iceServerMap.hasKey("url")) {
416420
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());
418422
} else {
419-
iceServers.add(new PeerConnection.IceServer(iceServerMap.getString("url")));
423+
iceServers.add(PeerConnection.IceServer.builder(iceServerMap.getString("url")).createIceServer());
420424
}
421425
} else if (iceServerMap.hasKey("urls")) {
422426
switch (iceServerMap.getType("urls")) {
423427
case String:
424428
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());
426430
} else {
427-
iceServers.add(new PeerConnection.IceServer(iceServerMap.getString("urls")));
431+
iceServers.add(PeerConnection.IceServer.builder(iceServerMap.getString("urls")).createIceServer());
428432
}
429433
break;
430434
case Array:
431435
ConstraintsArray urls = iceServerMap.getArray("urls");
432436
for (int j = 0; j < urls.size(); j++) {
433437
String url = urls.getString(j);
434438
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());
436440
} else {
437-
iceServers.add(new PeerConnection.IceServer(url));
441+
iceServers.add(PeerConnection.IceServer.builder(url).createIceServer());
438442
}
439443
}
440444
break;
@@ -1184,6 +1188,14 @@ public void peerConnectionClose(final String id) {
11841188
Log.d(TAG, "peerConnectionClose() peerConnection is null");
11851189
} else {
11861190
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();
11871199
mPeerConnectionObservers.remove(id);
11881200
}
11891201
}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,14 @@ void setPeerConnection(PeerConnection peerConnection) {
7979
void close() {
8080
eventChannel.setStreamHandler(null);
8181
peerConnection.close();
82-
peerConnection.dispose();
8382
remoteStreams.clear();
8483
remoteTracks.clear();
8584
dataChannels.clear();
8685
}
86+
void dispose(){
87+
this.close();
88+
peerConnection.dispose();
89+
}
8790

8891
void createDataChannel(String label, ConstraintsMap config, Result result) {
8992
DataChannel.Init init = new DataChannel.Init();

ios/Classes/FlutterWebRTCPlugin.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ - (void)handleMethodCall:(FlutterMethodCall*)call result:(FlutterResult) result
305305
NSString* trackId = argsMap[@"trackId"];
306306
[self.localTracks removeObjectForKey:trackId];
307307
result(nil);
308-
}else if([@"peerConnectionClose" isEqualToString:call.method]){
308+
}else if([@"peerConnectionClose" isEqualToString:call.method] || [@"peerConnectionDispose" isEqualToString:call.method]){
309309
NSDictionary* argsMap = call.arguments;
310310
NSString* peerConnectionId = argsMap[@"peerConnectionId"];
311311

0 commit comments

Comments
 (0)
0