Example #1
0
        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
        }