/// <summary>
        /// Creates the CompositionSurfaceBrush if one hasn't already been created. Also assigns the
        /// brush to the video SpriteVisual.
        /// </summary>
        private void EnsureVideoBrush()
        {
            if (_videoSurface == null)
            {
                // Getting the surface that represents the MediaPlayer's swapchain for video content
                // is easy, just pass a Compositor to the MediaPlayer!
                _videoSurface = _mediaPlayer.GetSurface(_compositor);

                // Create a brush for our new surface and attach it to our visual.
                _videoBrush        = _compositor.CreateSurfaceBrush(_videoSurface.CompositionSurface);
                _videoVisual.Brush = _videoBrush;
            }
        }
Esempio n. 2
0
        private void EnsureVideoSurface()
        {
            if (_mediaSurface == null)
            {
                // Create a surface from our MediaPlayer.
                _mediaSurface = _player.GetSurface(_compositor);
                var surface = _mediaSurface.CompositionSurface;

                // Make a brush out of it and apply it to our effect.
                _videoBrush = _compositor.CreateSurfaceBrush(surface);
                //_visual.Brush = _videoBrush;
                _effectBrush.SetSourceParameter("Video", _videoBrush);

                // Enable our button now that we have everything set up.
                EffectButton.IsEnabled = true;
            }
        }
Esempio n. 3
0
        private void Play(GalleryItem item)
        {
            try
            {
                var parent = Surface;

                //var container = Flip.ContainerFromItem(item) as ContentControl;
                //if (container != null && container.ContentTemplateRoot is Grid parent)
                {
                    //_surface = parent.FindName("Surface") as ImageView;
                    _surface = parent;

                    _mediaPlayer.MediaPlayer.SetSurfaceSize(new Size(_surface.ActualWidth, _surface.ActualHeight));

                    var swapchain = _mediaPlayer.MediaPlayer.GetSurface(_layerVisual.Compositor);
                    var brush     = _layerVisual.Compositor.CreateSurfaceBrush(swapchain.CompositionSurface);
                    var size      = new Vector2((float)_surface.ActualWidth, (float)_surface.ActualHeight);

                    //var mask = Unigram.Common.ImageLoader.Instance.LoadCircle(240, Colors.White).Brush;
                    //var graphicsEffect = new AlphaMaskEffect
                    //{
                    //    Source = new CompositionEffectSourceParameter("image"),
                    //    AlphaMask = new CompositionEffectSourceParameter("mask")
                    //};

                    //var effectFactory = _layerVisual.Compositor.CreateEffectFactory(graphicsEffect);
                    //var effectBrush = effectFactory.CreateBrush();
                    //effectBrush.SetSourceParameter("image", brush);
                    //effectBrush.SetSourceParameter("mask", mask);

                    _surfaceVisual       = _layerVisual.Compositor.CreateSpriteVisual();
                    _surfaceVisual.Size  = size;
                    _surfaceVisual.Brush = brush;

                    ElementCompositionPreview.SetElementChildVisual(_surface, _surfaceVisual);

                    _mediaSurface       = swapchain;
                    _mediaPlayer.Source = MediaSource.CreateFromUri(item.GetVideoSource());
                    _mediaPlayer.MediaPlayer.IsLoopingEnabled = item.IsLoop;
                    _mediaPlayer.MediaPlayer.Play();
                }
            }
            catch { }
        }
Esempio n. 4
0
        // </SnippetDoubleTapped>


        //private void SetVideoVisual()
        //{
        //    // <SnippetCompositor>
        //    Visual elementVisual = ElementCompositionPreview.GetElementVisual(_compositionCanvas);
        //    var compositor = elementVisual.Compositor;

        //    _mediaPlayer.SetSurfaceSize(new Size(_compositionCanvas.ActualWidth, _compositionCanvas.ActualHeight));
        //    MediaPlayerSurface surface = _mediaPlayer.GetSurface(compositor);

        //    SpriteVisual spriteVisual = compositor.CreateSpriteVisual();
        //    spriteVisual.Brush = compositor.CreateSurfaceBrush(surface.CompositionSurface);

        //    ElementCompositionPreview.SetElementChildVisual(_compositionCanvas, spriteVisual);
        //    // </SnippetCompositor>
        //}

        private void SetVideoVisualButton_Click(object sender, RoutedEventArgs e)
        {
            // <SnippetCompositor>
            mediaPlayer.SetSurfaceSize(new Size(_compositionCanvas.ActualWidth, _compositionCanvas.ActualHeight));

            var compositor = ElementCompositionPreview.GetElementVisual(this).Compositor;
            MediaPlayerSurface surface = mediaPlayer.GetSurface(compositor);

            SpriteVisual spriteVisual = compositor.CreateSpriteVisual();
            spriteVisual.Size =
                new System.Numerics.Vector2((float)_compositionCanvas.ActualWidth, (float)_compositionCanvas.ActualHeight);

            CompositionBrush brush = compositor.CreateSurfaceBrush(surface.CompositionSurface);
            spriteVisual.Brush = brush;

            ContainerVisual container = compositor.CreateContainerVisual();
            container.Children.InsertAtTop(spriteVisual);

            ElementCompositionPreview.SetElementChildVisual(_compositionCanvas, container);
            // </SnippetCompositor>
        }
Esempio n. 5
0
        private void resetSize()
        {
            if (ElementCompositionPreview.GetElementChildVisual(_compositionCanvas) != null && video)
            {
                ElementCompositionPreview.GetElementChildVisual(_compositionCanvas).Dispose();
                MediaPlayer _mediaPlayer = ViewModel.MediaPlayer;
                _mediaPlayer.SetSurfaceSize(new Size(_compositionCanvas.Width, _compositionCanvas.Height));

                var compositor                  = ElementCompositionPreview.GetElementVisual(this).Compositor;
                MediaPlayerSurface surface      = _mediaPlayer.GetSurface(compositor);
                SpriteVisual       spriteVisual = compositor.CreateSpriteVisual();
                spriteVisual.Size = new System.Numerics.Vector2((float)_compositionCanvas.Width, (float)_compositionCanvas.Height);

                CompositionBrush brush = compositor.CreateSurfaceBrush(surface.CompositionSurface);
                spriteVisual.Brush = brush;

                ContainerVisual container = compositor.CreateContainerVisual();
                container.Children.InsertAtTop(spriteVisual);
                ElementCompositionPreview.SetElementChildVisual(_compositionCanvas, container);
            }
        }
        /// <summary>
        /// Creates the CompositionSurfaceBrush if one hasn't already been created. Also assigns the
        /// brush to the video SpriteVisual.
        /// </summary>
        private void EnsureVideoBrush()
        {
            if (_videoSurface == null)
            {
                // Getting the surface that represents the MediaPlayer's swapchain for video content
                // is easy, just pass a Compositor to the MediaPlayer!
                _videoSurface = _mediaPlayer.GetSurface(_compositor);

                // Create a brush for our new surface and attach it to our visual.
                _videoBrush = _compositor.CreateSurfaceBrush(_videoSurface.CompositionSurface);
                _videoVisual.Brush = _videoBrush;
            }
        }