Browse Source

Better clean up

Signed-off-by: Mario Danic <mario@lovelyhq.com>
Mario Danic 7 năm trước cách đây
mục cha
commit
0e78d0f64d

+ 7 - 1
app/src/main/java/com/nextcloud/talk/activities/CallActivity.java

@@ -940,7 +940,9 @@ public class CallActivity extends AppCompatActivity {
 
     private void deleteMagicPeerConnection(MagicPeerConnectionWrapper magicPeerConnectionWrapper) {
         if (magicPeerConnectionWrapper.getPeerConnection() != null) {
+            magicPeerConnectionWrapper.removeMediaStream();
             magicPeerConnectionWrapper.getPeerConnection().close();
+            magicPeerConnectionWrapper.getPeerConnection().dispose();
         }
         magicPeerConnectionWrapperList.remove(magicPeerConnectionWrapper);
     }
@@ -977,7 +979,6 @@ public class CallActivity extends AppCompatActivity {
 
         }
 
-
         if (!dueToNetworkChange) {
             pipVideoView.release();
             
@@ -989,8 +990,13 @@ public class CallActivity extends AppCompatActivity {
                 if (localMediaStream.audioTracks != null && localMediaStream.audioTracks.size() > 0) {
                     localMediaStream.removeTrack(localMediaStream.audioTracks.get(0));
                 }
+
+                localMediaStream.dispose();
             }
 
+            localVideoTrack.dispose();
+            localAudioTrack.dispose();
+
             localVideoTrack = null;
             localAudioTrack = null;
             localRenderer = null;

+ 6 - 0
app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java

@@ -92,6 +92,12 @@ public class MagicPeerConnectionWrapper {
         }
     }
 
+    public void removeMediaStream() {
+        if (peerConnection != null && localMediaStream != null) {
+            peerConnection.removeStream(localMediaStream);
+        }
+    }
+
     public void drainIceCandidates() {
 
         for (IceCandidate iceCandidate : iceCandidates) {