Esempio n. 1
0
        private void PeerConnection_OnTrack(IRTCTrackEvent Event)
        {
            if (Event.Track.Kind == "video")
            {
                _peerVideoTrack = Event.Track;

                if (_peerVideoTrack != null)
                {
                    _peerVideoTrack.Element = MediaElementMaker.Bind(Devices.Instance.PeerVideo);
                    ((MediaStreamTrack)_peerVideoTrack).OnFrameRateChanged += (float frameRate) =>
                    {
                        FramesPerSecondChanged?.Invoke("PEER", frameRate.ToString("0.0"));
                    };
                    ((MediaStreamTrack)_peerVideoTrack).OnResolutionChanged += (uint width, uint height) =>
                    {
                        ResolutionChanged?.Invoke("PEER", width, height);
                    };
                }
            }
            else if (Event.Track.Kind == "audio")
            {
                _peerAudioTrack = Event.Track;
            }

            OnAddRemoteTrack?.Invoke(Event.Track);
        }
Esempio n. 2
0
        void Conn_OnRemoveTrack(IRTCTrackEvent evt)
        {
            Logger.Debug("PeerChannel",
                         $"OnRemoveTrack:{evt.Track.Kind}:{evt.Track.Id}:{evt.Track.GetHashCode()}");


            if (evt.Transceiver != null)
            {
                Logger.Debug("PeerChannel", "Transceiver found");

                if (evt.Transceiver.Sender != null)
                {
                    Logger.Debug("PeerChannel", "Sender found");
                }
                else
                {
                    Logger.Debug("PeerChannel", "Sender not found");
                }

                if (evt.Transceiver.Receiver != null)
                {
                    Logger.Debug("PeerChannel", "Receiver found");
                    var track = evt.Transceiver.Receiver.Track;
                    OnRemoveRemoteTrack?.Invoke(track.Kind, track.Id);
                }
                else
                {
                    Logger.Debug("PeerChannel", "Receiver not found");
                }
            }
            else
            {
                Logger.Debug("PeerChannel", "Transceiver not found");
            }
        }
Esempio n. 3
0
        private void PeerConnection_OnRemoveTrack(IRTCTrackEvent Event)
        {
            if (Event.Track.Kind == "video")
            {
                _peerVideoTrack.Element = null;
            }

            OnRemoveRemoteTrack?.Invoke(Event.Track);
        }
Esempio n. 4
0
 private void peerConnection_OnTrack(IRTCTrackEvent ev)
 {
     if (ev.Track.Kind == "video")
     {
         this.remoteVideoTrack = ev.Track;
         if (this.mediaOptions.ReceiveVideo)
         {
             this.remoteVideoTrack.Element = MediaElementMaker.Bind(this.remoteVideo);
         }
     }
     else if (ev.Track.Kind == "audio")
     {
         if (this.mediaOptions.ReceiveAudio)
         {
             this.remoteAudioTrack = ev.Track;
         }
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Peer Connection Handler: On Track Added
 /// </summary>
 /// <param name="ev"></param>
 private void OnTrack(IRTCTrackEvent ev)
 {
     // client only.
     if (ev.Track.Kind == "video")
     {
         this.RemoteVideoTrack = ev.Track;
         if (this.MediaOpts.ReceiveVideo)
         {
             this.RemoteVideoTrack.Element = MediaElementMaker.Bind(this.RemoteVideo);
             this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
             {
                 this.RemoteVideo.Visibility = Visibility.Visible;
             });
         }
     }
     else if (ev.Track.Kind == "audio")
     {
         if (this.MediaOpts.ReceiveAudio)
         {
             this.RemoteAudioTrack = ev.Track;
         }
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Peer Connection Handler.
 /// On track removed.
 /// Client only.
 /// </summary>
 private void OnRemoveTrack(IRTCTrackEvent ev)
 {
     System.Diagnostics.Debug.WriteLine("lol it broke");
 }