/// <summary>
        /// Add local stream event handler.
        /// </summary>
        /// <param name="evt">Details about Media stream event.</param>
        private void Conductor_OnAddLocalStream(MediaStreamEvent evt)
        {
            _selfVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
            if (_selfVideoTrack != null)
            {
                //var source = Media.CreateMedia().CreateMediaSource(_selfVideoTrack, "SELF");
                RunOnUiThread(() =>
                {
                    if (_cameraEnabled)
                    {
                        Conductor.Instance.EnableLocalVideoStream();
                    }
                    else
                    {
                        Conductor.Instance.DisableLocalVideoStream();
                    }

                    if (_microphoneIsOn)
                    {
                        Conductor.Instance.UnmuteMicrophone();
                    }
                    else
                    {
                        Conductor.Instance.MuteMicrophone();
                    }
                });
            }
        }
Exemple #2
0
        private async void connection_OnAddStream(MediaStreamEvent ev)
        {
            this.remoteVideoTrack = ev.Stream.GetVideoTracks().FirstOrDefault();
            if (this.remoteVideoTrack != null)
            {
                if (this.mediaOptions.ReceiveVideo)
                {
                    await this.runOnUI(() =>
                    {
                        this.media.AddVideoTrackMediaElementPair(
                            this.remoteVideoTrack,
                            this.remoteVideo,
                            "Remote");
                    });
                }
                else
                {
                    await this.destroyRemoteVideo();
                }
            }

            var remoteAudioTrack = ev.Stream.GetAudioTracks().FirstOrDefault();

            if (remoteAudioTrack != null)
            {
                if (!this.mediaOptions.ReceiveAudio)
                {
                    this.destroyRemoteAudio();
                }
            }

            this.RemoteStreamAdded?.Invoke(this, EventArgs.Empty);
        }
Exemple #3
0
 private void Conductor_OnRemoveRemoteStream(MediaStreamEvent evt)
 {
     RunOnUiThread(() =>
     {
         // TODO: Setup Remote Video Stream
     });
 }
Exemple #4
0
        private void Instance_OnAddRemoteStream(MediaStreamEvent evt)
        {
            RunOnUiThread(() =>
            {
                System.Diagnostics.Debug.WriteLine("Conductor_OnAddRemoteStream()");

                _peerVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
                if (_peerVideoTrack != null)
                {
                    System.Diagnostics.Debug.WriteLine(
                        "Conductor_OnAddRemoteStream() - GetVideoTracks: {0}",
                        evt.Stream.GetVideoTracks().Count);
                    // Raw Video from VP8 Encoded Sender
                    // H264 Encoded Stream does not trigger this event

                    // TODO:  Switch between RAW or ENCODED Frame
#if HACK_VP8
                    rawVideo = Media.CreateMedia().CreateRawVideoSource(_peerVideoTrack);
                    rawVideo.OnRawVideoFrame += Source_OnRawVideoFrame;
#else
                    encodedVideo = Media.CreateMedia().CreateEncodedVideoSource(_peerVideoTrack);
                    encodedVideo.OnEncodedVideoFrame += EncodedVideo_OnEncodedVideoFrame;
#endif
                }
                else
                {
                    System.Diagnostics.Debug.WriteLine("Conductor_OnAddRemoteStream() - peerVideoTrack NULL");
                }
                _webRtcControl.IsReadyToDisconnect = true;
            }
                          );
        }
 /// <summary>
 /// Remove remote stream event handler.
 /// </summary>
 /// <param name="evt">Details about Media stream event.</param>
 private void Conductor_OnRemoveRemoteStream(MediaStreamEvent evt)
 {
     RunOnUiThread(() =>
     {
         Conductor.Instance.Media.RemoveVideoTrackMediaElementPair(_peerVideoTrack);
         //PeerVideo.SetMediaStreamSource(null);
     });
 }
Exemple #6
0
        //private void _remoteRtcPeerConnection_OnIceConnectionChange(RTCPeerConnectionIceStateChangeEvent __param0)
        //{
        //    Debug.WriteLine($"Entered _remoteRtcPeerConnection_OnIceConnectionChange {__param0.State}");
        //}

        //private async void _remoteRtcPeerConnection_OnIceCandidate(RTCPeerConnectionIceEvent __param0)
        //{
        //    Debug.WriteLine("Entered _remoteRtcPeerConnection_OnIceCandidate");
        //    await _remoteRtcPeerConnection.AddIceCandidate(__param0.Candidate);
        //}

        //private void _remoteRtcPeerConnection_OnAddStream(MediaStreamEvent __param0)
        //{
        //    MediaStream remoteStream = __param0.Stream;
        //    var tracks = remoteStream.GetVideoTracks();
        //    _media.AddVideoTrackMediaElementPair(tracks.FirstOrDefault(), _remoteVideo, remoteStream.Id);
        //    Debug.WriteLine("Received a remote stream");
        //}

        private void _peerConnection_OnAddStream(MediaStreamEvent __param0)
        {
            MediaStream remoteStream = __param0.Stream;
            var         tracks       = remoteStream.GetVideoTracks();

            _media.AddVideoTrackMediaElementPair(tracks.FirstOrDefault(), _remoteVideo, remoteStream.Id);
            Debug.WriteLine("Received a remote stream");
        }
Exemple #7
0
        async void OnPeerAddsRemoteStreamAsync(MediaStreamEvent args)
        {
            var stream = args?.Stream;

            if (stream != null)
            {
                await this.mediaManager.AddRemoteStreamAsync(stream);
            }
        }
Exemple #8
0
        private void PeerConnection_OnAddStream(MediaStreamEvent evt)
        {
            var remoteVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();

            if (remoteVideoTrack != null)
            {
                this.Wrapper.Media.AddVideoTrackMediaElementPair(remoteVideoTrack, this.RemoteVideo, "Remote");
            }
        }
Exemple #9
0
 private void Conductor_OnAddRemoteStream(MediaStreamEvent evt)
 {
     _peerVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
     if (_peerVideoTrack != null)
     {
         _decodedVideo = Media.CreateMedia().CreateDecodedVideoSource(_peerVideoTrack);
         _decodedVideo.OnDecodedVideoFrame += Source_OnDecodedVideoFrame;
     }
 }
Exemple #10
0
 private void Conductor_OnAddRemoteStream(MediaStreamEvent evt)
 {
     System.Diagnostics.Debug.WriteLine("Conductor_OnAddRemoteStream()");
     _peerVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
     if (_peerVideoTrack != null)
     {
         System.Diagnostics.Debug.WriteLine(
             "Conductor_OnAddRemoteStream() - GetVideoTracks: {0}",
             evt.Stream.GetVideoTracks().Count);
     }
     else
     {
         System.Diagnostics.Debug.WriteLine("Conductor_OnAddRemoteStream() - peerVideoTrack NULL");
     }
     _webRtcControl.IsReadyToDisconnect = true;
 }
        private void Conductor_OnAddLocalStream(MediaStreamEvent evt)
        {
            if (evt == null)
            {
                var msg = "Conductor_OnAddLocalStream--media stream NULL";
                Debug.WriteLine(msg);
                OnStatusMessageUpdate?.Invoke(msg);
            }
            _selfVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
            //if ((_selfVideoTrack != null) && (SelectedCamera != null))
            if (_selfVideoTrack != null)
            {
                Debug.WriteLine("selfVideoTrack Setup-IsCameraEnabled:{0}-IsMicrophoneEnabled:{1}", IsCameraEnabled, IsMicrophoneEnabled);
                RunOnUiThread(() =>
                {
                    if (IsCameraEnabled)
                    {
                        Conductor.Instance.EnableLocalVideoStream();
                    }
                    else
                    {
                        Conductor.Instance.DisableLocalVideoStream();
                    }

                    if (IsMicrophoneEnabled)
                    {
                        Conductor.Instance.UnmuteMicrophone();
                    }
                    else
                    {
                        Conductor.Instance.MuteMicrophone();
                    }

// TODO: Handle Video Loopback
//                    if ((VideoLoopbackEnabled) && (SelfVideo != null))
//                    {
//                        var source = Media.CreateMedia().CreateMediaSource(_selfVideoTrack, "SELF");
//                        SelfVideo.SetMediaStreamSource(source);
//                    }
                });
            }
            else
            {
                Debug.WriteLine("selfVideoTrack NULL");
            }
        }
Exemple #12
0
        private void Conn_OnAddStream(MediaStreamEvent __param0)
        {
            var stream = __param0.Stream;

            var videotracks = stream.GetVideoTracks();
            //var media = Media.CreateMedia();

            //var apd = media.GetAudioPlayoutDevices();
            //if (apd.Count > 0)
            //{
            //    media.SelectAudioPlayoutDevice(apd[0]);
            //}

            var source = LocalMedia.CreateMediaSource(videotracks.FirstOrDefault(), stream.Id);

            RemoteMediaPlayer.SetMediaStreamSource(source);

            RemoteMediaPlayer.Play();
        }
        /// <summary>
        /// Add remote stream event handler.
        /// </summary>
        /// <param name="evt">Details about Media stream event.</param>
        private void Conductor_OnAddRemoteStream(MediaStreamEvent evt)
        {
            _peerVideoTrack = evt.Stream.GetVideoTracks().FirstOrDefault();
            if (_peerVideoTrack != null)
            {
                //if (!_isHoloLens)
                //{
                //    Conductor.Instance.Media.AddVideoTrackMediaElementPair(_peerVideoTrack, PeerVideo, "PEER");
                //}

                //var source = Media.CreateMedia().CreateMediaSource(_peerVideoTrack, "PEER");
                //RunOnUiThread(() =>
                //{
                //  PeerVideo.SetMediaStreamSource(source);
                //});

                // Pass the spatial coordinate system to webrtc.
                var spatialCoordinateSystem = UrhoAppView.Current.ReferenceFrame.CoordinateSystem;
                Media.SetSpatialCoordinateSystem(spatialCoordinateSystem);
            }

            IsReadyToDisconnect = true;
        }
Exemple #14
0
 private void PeerConnection_OnRemoveStream(MediaStreamEvent evt)
 {
     OnRemoveRemoteStream?.Invoke(evt);
 }
Exemple #15
0
 private void Conductor_OnRemoveRemoteStream(MediaStreamEvent obj)
 {
 }
Exemple #16
0
 private void Conductor_OnAddLocalStream(MediaStreamEvent obj)
 {
 }