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(); } }
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); }
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(); } }
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); }
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); }
public void DidAddStream(RTCPeerConnection peerConnection, RTCMediaStream stream) { _listener?.OnAddStream(new MediaStreamNative(stream)); }
public void PeerConnectionRemoved(RTCPeerConnection peerConnection, RTCMediaStream stream) { System.Diagnostics.Debug.WriteLine("Stream was removed."); }
public MediaStreamNative(RTCMediaStream mediaStream) : base(mediaStream) { _mediaStream = mediaStream; }
public PlatformMediaStream(RTCMediaStream mediaStream) : base(mediaStream) => _mediaStream = mediaStream;