Explorar o código

Dont show publisher stream

Mario Danic %!s(int64=6) %!d(string=hai) anos
pai
achega
7a31c4c659

+ 3 - 3
app/src/main/java/com/nextcloud/talk/controllers/CallController.java

@@ -800,7 +800,7 @@ public class CallController extends BaseController {
                 }
             } else {
                 for (int i = 0; i < magicPeerConnectionWrapperList.size(); i++) {
-                    if (magicPeerConnectionWrapperList.get(i).getSessionId().equals(callSession)) {
+                    if (magicPeerConnectionWrapperList.get(i).getSessionId().equals(webSocketClient.getSessionId())) {
                         magicPeerConnectionWrapperList.get(i).sendChannelData(new DataChannelMessage(message));
                         break;
 
@@ -1280,7 +1280,7 @@ public class CallController extends BaseController {
                         magicPeerConnectionWrapper.setNick(ncSignalingMessage.getPayload().getNick());
                         SessionDescription sessionDescriptionWithPreferredCodec;
 
-                        if (magicPeerConnectionWrapper.hasMediaStream() ) {
+                        if (magicPeerConnectionWrapper.hasMediaStream()) {
                             String sessionDescriptionStringWithPreferredCodec = MagicWebRTCUtils.preferCodec
                                     (ncSignalingMessage.getPayload().getSdp(),
                                             "VP8", false);
@@ -1480,7 +1480,7 @@ public class CallController extends BaseController {
             return;
         }
 
-        if (newSessions.size() > 0) {
+        if (newSessions.size() > 0 && !hasMCU) {
             getPeersForCall();
         }
 

+ 8 - 2
app/src/main/java/com/nextcloud/talk/webrtc/MagicPeerConnectionWrapper.java

@@ -72,6 +72,7 @@ public class MagicPeerConnectionWrapper {
     private boolean hasInitiated;
 
     private MediaStream localMediaStream;
+    private boolean isMCUPublisher;
 
     public MagicPeerConnectionWrapper(PeerConnectionFactory peerConnectionFactory,
                                       List<PeerConnection.IceServer> iceServerList,
@@ -86,6 +87,7 @@ public class MagicPeerConnectionWrapper {
 
         magicSdpObserver = new MagicSdpObserver();
         hasInitiated = sessionId.compareTo(localSession) < 0;
+        this.isMCUPublisher = isMCUPublisher;
 
         peerConnection = peerConnectionFactory.createPeerConnection(iceServerList, mediaConstraints,
                 new MagicPeerConnectionObserver());
@@ -266,7 +268,9 @@ public class MagicPeerConnectionWrapper {
             if (iceConnectionState.equals(PeerConnection.IceConnectionState.CONNECTED)) {
                 /*EventBus.getDefault().post(new PeerConnectionEvent(PeerConnectionEvent.PeerConnectionEventType
                         .PEER_CONNECTED, sessionId, null, null));*/
-                EventBus.getDefault().post(new MediaStreamEvent(remoteMediaStream, sessionId));
+                if (!isMCUPublisher) {
+                    EventBus.getDefault().post(new MediaStreamEvent(remoteMediaStream, sessionId));
+                }
 
                 if (hasInitiated) {
                     sendInitialMediaStatus();
@@ -309,7 +313,9 @@ public class MagicPeerConnectionWrapper {
 
         @Override
         public void onRemoveStream(MediaStream mediaStream) {
-            EventBus.getDefault().post(new MediaStreamEvent(null, sessionId));
+            if (!isMCUPublisher) {
+                EventBus.getDefault().post(new MediaStreamEvent(null, sessionId));
+            }
         }
 
         @Override