mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-21 12:39:58 +01:00
Fix media stream & data channel messages sending
This commit is contained in:
parent
7e1e86ae9e
commit
8af047926e
@ -248,6 +248,7 @@ public class CallController extends BaseController {
|
|||||||
private ExternalSignalingServer externalSignalingServer;
|
private ExternalSignalingServer externalSignalingServer;
|
||||||
private MagicWebSocketInstance webSocketClient;
|
private MagicWebSocketInstance webSocketClient;
|
||||||
private WebSocketConnectionHelper webSocketConnectionHelper;
|
private WebSocketConnectionHelper webSocketConnectionHelper;
|
||||||
|
private boolean hasMCU;
|
||||||
|
|
||||||
public CallController(Bundle args) {
|
public CallController(Bundle args) {
|
||||||
super(args);
|
super(args);
|
||||||
@ -793,8 +794,18 @@ public class CallController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (inCall) {
|
if (inCall) {
|
||||||
for (int i = 0; i < magicPeerConnectionWrapperList.size(); i++) {
|
if (!hasMCU) {
|
||||||
magicPeerConnectionWrapperList.get(i).sendChannelData(new DataChannelMessage(message));
|
for (int i = 0; i < magicPeerConnectionWrapperList.size(); i++) {
|
||||||
|
magicPeerConnectionWrapperList.get(i).sendChannelData(new DataChannelMessage(message));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (int i = 0; i < magicPeerConnectionWrapperList.size(); i++) {
|
||||||
|
if (magicPeerConnectionWrapperList.get(i).getSessionId().equals(callSession)) {
|
||||||
|
magicPeerConnectionWrapperList.get(i).sendChannelData(new DataChannelMessage(message));
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1493,18 +1504,16 @@ public class CallController extends BaseController {
|
|||||||
if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) {
|
if ((magicPeerConnectionWrapper = getPeerConnectionWrapperForSessionId(sessionId)) != null) {
|
||||||
return magicPeerConnectionWrapper;
|
return magicPeerConnectionWrapper;
|
||||||
} else {
|
} else {
|
||||||
boolean hasMCU = webSocketClient != null && webSocketClient.hasMCU();
|
hasMCU = webSocketClient != null && webSocketClient.hasMCU();
|
||||||
|
|
||||||
if (hasMCU) {
|
if (hasMCU) {
|
||||||
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
||||||
iceServers, sdpConstraintsForMCU, sessionId, callSession, localMediaStream, hasMCU);
|
iceServers, sdpConstraintsForMCU, sessionId, callSession, null, hasMCU);
|
||||||
} else {
|
} else {
|
||||||
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
||||||
iceServers, sdpConstraints, sessionId, callSession, localMediaStream, hasMCU);
|
iceServers, sdpConstraints, sessionId, callSession, localMediaStream, hasMCU);
|
||||||
}
|
}
|
||||||
|
|
||||||
magicPeerConnectionWrapper = new MagicPeerConnectionWrapper(peerConnectionFactory,
|
|
||||||
iceServers, sdpConstraints, sessionId, callSession, localMediaStream, hasMCU);
|
|
||||||
magicPeerConnectionWrapperList.add(magicPeerConnectionWrapper);
|
magicPeerConnectionWrapperList.add(magicPeerConnectionWrapper);
|
||||||
return magicPeerConnectionWrapper;
|
return magicPeerConnectionWrapper;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,9 @@ public class MagicPeerConnectionWrapper {
|
|||||||
new MagicPeerConnectionObserver());
|
new MagicPeerConnectionObserver());
|
||||||
|
|
||||||
if (peerConnection != null) {
|
if (peerConnection != null) {
|
||||||
peerConnection.addStream(localMediaStream);
|
if (localSession != null) {
|
||||||
|
peerConnection.addStream(localMediaStream);
|
||||||
|
}
|
||||||
|
|
||||||
if (hasInitiated || hasMCU) {
|
if (hasInitiated || hasMCU) {
|
||||||
DataChannel.Init init = new DataChannel.Init();
|
DataChannel.Init init = new DataChannel.Init();
|
||||||
|
Loading…
Reference in New Issue
Block a user