private void SetVideoPresenters() { var boolToVisConverter = new BooleanToVisibilityConverter(); #if WIN10 var peerSwapChainPanel = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); var peerHandleBinding = new Binding { Source = DataContext, Path = new PropertyPath("RemoteSwapChainPanelHandle"), Mode = BindingMode.OneWay }; peerSwapChainPanel.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, peerHandleBinding); PeerVideoPresenter.Content = peerSwapChainPanel; var selfSwapChainPanel = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); var selfHandleBinding = new Binding { Source = DataContext, Path = new PropertyPath("LocalSwapChainPanelHandle"), Mode = BindingMode.OneWay }; selfSwapChainPanel.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, selfHandleBinding); var selfSizeBinding = new Binding { Source = DataContext, Path = new PropertyPath("LocalNativeVideoSize"), }; selfSwapChainPanel.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SizeProperty, selfSizeBinding); SelfVideoPresenter.Content = selfSwapChainPanel; #endif #if WIN81 _peerMediaElement = new MediaElement { RealTimePlayback = true }; PeerVideoPresenter.Content = _peerMediaElement; _selfMediaElement = new MediaElement { RealTimePlayback = true }; SelfVideoPresenter.Content = _selfMediaElement; #endif }
private void SetVideoPresenters() { #if WIN10 var remoteVideoRenderer = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); remoteVideoRenderer.SizeChanged += (s, e) => { RemoteVideoControlSize = e.NewSize; }; remoteVideoRenderer.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, new Binding { Source = this, Path = new PropertyPath(nameof(RemoteSwapChainPanelHandle)), Mode = BindingMode.OneWay }); RemoteVideoRenderer = remoteVideoRenderer; var localVideoRenderer = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); localVideoRenderer.SizeChanged += (s, e) => { LocalVideoControlSize = e.NewSize; }; localVideoRenderer.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, new Binding { Source = this, Path = new PropertyPath(nameof(LocalSwapChainPanelHandle)), Mode = BindingMode.OneWay }); LocalVideoRenderer = localVideoRenderer; #endif #if WIN81 RemoteVideoRenderer = new MediaElement { RealTimePlayback = true }; LocalVideoRenderer = new MediaElement { RealTimePlayback = true }; #endif }
private void SetVideoPresenters() { #if WIN10 var remoteVideoRenderer = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); remoteVideoRenderer.SizeChanged += (s, e) => { RemoteVideoControlSize = e.NewSize; }; remoteVideoRenderer.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, new Binding { Source = this, Path = new PropertyPath(nameof(RemoteSwapChainPanelHandle)), Mode = BindingMode.OneWay }); RemoteVideoRenderer = remoteVideoRenderer; var localVideoRenderer = new WebRTCSwapChainPanel.WebRTCSwapChainPanel(); localVideoRenderer.SizeChanged += (s, e) => { LocalVideoControlSize = e.NewSize; }; localVideoRenderer.SetBinding( WebRTCSwapChainPanel.WebRTCSwapChainPanel.SwapChainPanelHandleProperty, new Binding { Source = this, Path = new PropertyPath(nameof(LocalSwapChainPanelHandle)), Mode = BindingMode.OneWay }); LocalVideoRenderer = localVideoRenderer; #endif #if WIN81 RemoteVideoRenderer = new MediaElement { RealTimePlayback = true }; LocalVideoRenderer = new MediaElement { RealTimePlayback = true }; #endif }