diff --git a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/openvidu/Session.java b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/openvidu/Session.java index b1f232fb..c068af67 100644 --- a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/openvidu/Session.java +++ b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/openvidu/Session.java @@ -90,6 +90,15 @@ public class Session { } }); + if (localParticipant.getAudioTrack() != null) { + peerConnection.addTransceiver(localParticipant.getAudioTrack(), + new RtpTransceiver.RtpTransceiverInit(RtpTransceiver.RtpTransceiverDirection.SEND_ONLY)); + } + if (localParticipant.getVideoTrack() != null) { + peerConnection.addTransceiver(localParticipant.getVideoTrack(), + new RtpTransceiver.RtpTransceiverInit(RtpTransceiver.RtpTransceiverDirection.SEND_ONLY)); + } + return peerConnection; } @@ -134,13 +143,10 @@ public class Session { } }); - peerConnection.addTrack(localParticipant.getAudioTrack());//Add audio track to create transReceiver - peerConnection.addTrack(localParticipant.getVideoTrack());//Add video track to create transReceiver - - for (RtpTransceiver transceiver : peerConnection.getTransceivers()) { - //We set both audio and video in receive only mode - transceiver.setDirection(RtpTransceiver.RtpTransceiverDirection.RECV_ONLY); - } + peerConnection.addTransceiver(MediaStreamTrack.MediaType.MEDIA_TYPE_AUDIO, + new RtpTransceiver.RtpTransceiverInit(RtpTransceiver.RtpTransceiverDirection.RECV_ONLY)); + peerConnection.addTransceiver(MediaStreamTrack.MediaType.MEDIA_TYPE_VIDEO, + new RtpTransceiver.RtpTransceiverInit(RtpTransceiver.RtpTransceiverDirection.RECV_ONLY)); this.remoteParticipants.get(connectionId).setPeerConnection(peerConnection); } diff --git a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java index 9c6a932b..a7735fd4 100644 --- a/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java +++ b/openvidu-android/app/src/main/java/io/openvidu/openvidu_android/websocket/CustomWebSocket.java @@ -126,18 +126,11 @@ public class CustomWebSocket extends AsyncTask impl PeerConnection localPeerConnection = session.createLocalPeerConnection(); - localPeerConnection.addTrack(localParticipant.getAudioTrack()); - localPeerConnection.addTrack(localParticipant.getVideoTrack()); - - for (RtpTransceiver transceiver : localPeerConnection.getTransceivers()) { - transceiver.setDirection(RtpTransceiver.RtpTransceiverDirection.SEND_ONLY); - } - localParticipant.setPeerConnection(localPeerConnection); MediaConstraints sdpConstraints = new MediaConstraints(); - sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveAudio", "true")); - sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveVideo", "true")); + sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveAudio", "false")); + sdpConstraints.mandatory.add(new MediaConstraints.KeyValuePair("offerToReceiveVideo", "false")); session.createOfferForPublishing(sdpConstraints); if (result.getJSONArray(JsonConstants.VALUE).length() > 0) {