Example #1
0
        void StartSignalingIfReady()
        {
            if (!_isTurnComplete || !_isRegisteredWithRoomServer)
            {
                return;
            }

            SetState(ARDAppClientState.Connected);

            RTCMediaConstraints constrains = DefaultPeerConnectionConstraints();

            _peerConnection = _factory.PeerConnectionWithICEServers(_iceServers, constrains, this);

            RTCMediaStream localStream = CreateLocalMediaStream();

            _peerConnection.AddStream(localStream);
            if (_isInitiator)
            {
                SendOffer();
            }
            else
            {
                WaitForAnswer();
            }
        }
Example #2
0
        public void MuteAudioIn()
        {
            System.Diagnostics.Debug.WriteLine("audio muted");
            RTCMediaStream localStream = _peerConnection.LocalStreams[0];

            defaultAudioTrack = localStream.AudioTracks[0];
            localStream.RemoveAudioTrack(defaultAudioTrack);
            _peerConnection.RemoveStream(localStream);
            _peerConnection.AddStream(localStream);
        }
Example #3
0
        public void UnmuteAudioIn()
        {
            System.Diagnostics.Debug.WriteLine("audio unmuted");
            RTCMediaStream localStream = _peerConnection.LocalStreams[0];

            localStream.AddAudioTrack(defaultAudioTrack);
            _peerConnection.RemoveStream(localStream);
            _peerConnection.AddStream(localStream);
            if (_isSpeakerEnabled)
            {
                EnableSpeaker();
            }
        }
Example #4
0
        RTCMediaStream CreateLocalMediaStream()
        {
            RTCMediaStream localStream = _factory.MediaStreamWithLabel("ARDAMS");

            RTCVideoTrack localVideoTrack = CreateLocalVideoTrack();

            if (localVideoTrack != null)
            {
                localStream.AddVideoTrack(localVideoTrack);
                ARDAppClientDelegate.DidReceiveLocalVideoTrack(this, localVideoTrack);
                //        [_delegate appClient:self didReceiveLocalVideoTrack:localVideoTrack];
            }

            localStream.AddAudioTrack(_factory.AudioTrackWithID("ARDAMSa0"));
            if (_isSpeakerEnabled)
            {
                EnableSpeaker();
            }

            return(localStream);
        }
Example #5
0
        public void PeerConnectionAdded(RTCPeerConnection peerConnection, RTCMediaStream stream)
        {
            //	  dispatch_async(dispatch_get_main_queue(), ^{
            //  NSLog(@"Received %lu video tracks and %lu audio tracks",
            //      (unsigned long)stream.videoTracks.count,
            //      (unsigned long)stream.audioTracks.count);
            //  if (stream.videoTracks.count) {
            //    RTCVideoTrack *videoTrack = stream.videoTracks[0];
            //    [_delegate appClient:self didReceiveRemoteVideoTrack:videoTrack];
            //    if (_isSpeakerEnabled) [self enableSpeaker]; //Use the "handsfree" speaker instead of the ear speaker.

            //  }
            //});

            System.Diagnostics.Debug.WriteLine($"Received {stream.VideoTracks.Count()} video tracks and {stream.AudioTracks.Count()} audio tracks");
            if (stream.VideoTracks.Count() > 0)
            {
                _delegate.DidReceiveRemoteVideoTrack(this, stream.VideoTracks[0]);
                if (_isSpeakerEnabled)
                {
                    EnableSpeaker();
                }
            }
        }
 public override void DidRemoveStream(RTCPeerConnection peerConnection, RTCMediaStream stream)
 {
     _listener?.OnRemoveStream(new MediaStreamNative(stream));
 }
 public void DidRemoveStream(RTCPeerConnection peerConnection, RTCMediaStream stream)
 {
     Console.WriteLine("Stream was removed.");
 }
 public void DidAddStream(RTCPeerConnection peerConnection, RTCMediaStream stream)
 {
     Console.WriteLine("Stream with {0} video tracks and {1} audio tracks was added.", stream.VideoTracks.Length, stream.AudioTracks.Length);
 }
Example #9
0
 public void DidAddStream(RTCPeerConnection peerConnection, RTCMediaStream stream)
 {
     _listener?.OnAddStream(new MediaStreamNative(stream));
 }
Example #10
0
 public void PeerConnectionRemoved(RTCPeerConnection peerConnection, RTCMediaStream stream)
 {
     System.Diagnostics.Debug.WriteLine("Stream was removed.");
 }
Example #11
0
 public MediaStreamNative(RTCMediaStream mediaStream) : base(mediaStream)
 {
     _mediaStream = mediaStream;
 }
 public PlatformMediaStream(RTCMediaStream mediaStream) : base(mediaStream) => _mediaStream = mediaStream;