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); }
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"); } }
private void PeerConnection_OnRemoveTrack(IRTCTrackEvent Event) { if (Event.Track.Kind == "video") { _peerVideoTrack.Element = null; } OnRemoveRemoteTrack?.Invoke(Event.Track); }
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; } } }
/// <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; } } }
/// <summary> /// Peer Connection Handler. /// On track removed. /// Client only. /// </summary> private void OnRemoveTrack(IRTCTrackEvent ev) { System.Diagnostics.Debug.WriteLine("lol it broke"); }