AerialForWindows.Controllers.PrimayScreenOnlyController.Start C# (CSharp) Method

Start() public method

public Start ( ) : void
return void
        public override void Start()
        {
            var primary = MediaElements[0];
            primary.Source = new Uri(MovieManager.GetRandomAssetUrl());
            _logger.Debug($"Playing media {primary.Source}");

            if (Settings.Instance.PlayInLoop) {
                primary.UnloadedBehavior = MediaState.Manual;
                primary.MediaEnded += (sender, args) => {
                    primary.Position = TimeSpan.Zero;
                    _logger.Debug("Replaying media");
                    primary.Play();
                };
            } else {
                primary.MediaEnded += (sender, args) => {
                    primary.Source = new Uri(MovieManager.GetRandomAssetUrl());
                    _logger.Debug($"Playing new media {primary.Source}");
                };
            }
        }

Usage Example

Example #1
0
        private void ShowPreview(IntPtr previewHwnd)
        {
            var mediaElementController = new PrimayScreenOnlyController(_movieManager, 1);
            var window = new ScreenSaverWindow(mediaElementController, 0);
            mediaElementController.Start();

            var lpRect = new RECT();
            var bGetRect = Win32API.GetClientRect(previewHwnd, ref lpRect);
            Debug.Assert(bGetRect);

            var sourceParams = new HwndSourceParameters("sourceParams") {
                PositionX = 0,
                PositionY = 0,
                Height = lpRect.Bottom - lpRect.Top,
                Width = lpRect.Right - lpRect.Left,
                ParentWindow = previewHwnd,
                WindowStyle = (int) (WindowStyles.WS_VISIBLE | WindowStyles.WS_CHILD | WindowStyles.WS_CLIPCHILDREN)
            };

            _winWpfContent = new HwndSource(sourceParams);
            _winWpfContent.Disposed += (_, __) => window.Close();
            _winWpfContent.RootVisual = (Visual) window.Content;

            UpdateManager.Instance.CheckForUpdatesAsync();
        }
PrimayScreenOnlyController