Exemplo n.º 1
0
        private void FinishedLoading(object sender, EventArgs e) //Executed when MainWindow.ContentRendered is called
        {
            mediaPlayerView = new MediaPlayerView();
            mediaBrowser    = new MediaBrowserView();

            //contentGrid.Children.Add(mediaBrowser);
            contentGrid.Children.Add(mediaPlayerView);
            mediaPlayerView.mediaPlayer.MediaOpened  += MediaPlayer_MediaOpened;
            mediaPlayerView.mediaPlayer.MediaOpening += MediaPlayer_MediaOpening;
        }
        public MediaPlayerGroupViewModel()
        {
            MediaPlayerView mediaPlayerView = new MediaPlayerView();

            this.MediaOutput   = mediaPlayerView;
            this.MediaControls = new MediaPlayerControlsView();
            ((MediaPlayerControlsView)this.MediaControls).MediaPlayerView = mediaPlayerView;
            this.IsFullscreen   = false;
            this.Timer.Tick    += TimerTick;
            this.Timer.Interval = TimeSpan.FromMilliseconds(200);
        }
Exemplo n.º 3
0
        public MediaPlayerWindow()
        {
            View = new MediaPlayerView(); //must set the view first
            InitializeComponent();

            if (mediaPlayerOptions != null)
            {
                mediaPlayerOptions.MediaPlayerWindow = this;
            }

            defaultReplayOffset = player.ReplayOffset; //can set ReplayOffset in XAML
        }
Exemplo n.º 4
0
        private async void btStart_Click(object sender, EventArgs e)
        {
            mmLog.Clear();
            tcMain.SelectedIndex = 4;

            if (rbVideoFile.Checked)
            {
                ConfigureMediaPlayer();
            }
            else
            {
                ConfigureVideoCapture();
            }

            // add face detection
            if (cbFDEnabled.Checked)
            {
                FaceDetectionAdd();
            }

            // add car counter
            if (cbCCEnabled.Checked)
            {
                CarCounterAdd();
            }

            // add car counter
            if (cbPDEnabled.Checked)
            {
                PedestrianDetectionAdd();
            }

            //this.MediaPlayer1.Video_Effects_Enabled = true;
            //    this.MediaPlayer1.Video_Effects_Clear();
            //    this.MediaPlayer1.Video_Effects_Add(new VideoEffectMosaic(true, 500));

            if (rbVideoFile.Checked)
            {
                MediaPlayerView.Show();
                VideoCaptureView.Hide();
                await MediaPlayer1.PlayAsync();
            }
            else
            {
                MediaPlayerView.Hide();
                VideoCaptureView.Show();
                await VideoCapture1.StartAsync();
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// 打开视频文件
        /// </summary>
        public void OpenVideoAudioFile(string uri)
        {
            try
            {
                wordManage.ClearDocuments();
                pPTManage.ClearDocuments();
                excelManage.ClearDocuments();

                if (this.mediaPlayerView == null)
                {
                    this.mediaPlayerView = new MediaPlayerView(uri);
                }
                else
                {
                    this.mediaPlayerView.OpenVideo(uri);
                }
                //加载UI事件(比如多媒体播放器)
                this.book_LoadUI(this.mediaPlayerView);
            }
            catch (Exception ex)
            {
                LogManage.WriteLog(this.GetType(), ex);
            }
        }
Exemplo n.º 6
0
        public void Play(IEnumerable <MessageViewModel> items, bool auto)
        {
            var news = new Dictionary <long, MediaPlayerItem>();

            foreach (var message in items)
            {
                var container = Messages.ContainerFromItem(message) as ListViewItem;
                if (container == null)
                {
                    continue;
                }

                var animation = message.GetAnimation();
                if (animation == null)
                {
                    continue;
                }

                if (animation.Local.IsDownloadingCompleted)
                {
                    var root = container.ContentTemplateRoot as FrameworkElement;
                    if (root is Grid grid)
                    {
                        root = grid.FindName("Bubble") as FrameworkElement;
                    }

                    var media = root.FindName("Media") as ContentControl;
                    var panel = media.ContentTemplateRoot as Panel;

                    if (message.Content is MessageText)
                    {
                        media = panel.FindName("Media") as ContentControl;
                        panel = media.ContentTemplateRoot as Panel;
                    }
                    else if (message.Content is MessageGame)
                    {
                        panel = panel.FindName("Media") as Panel;
                    }
                    //else if (message.Media is TLMessageMediaGame)
                    //{
                    //    panel = panel.FindName("Media") as FrameworkElement;
                    //}
                    //else if (message.IsRoundVideo())
                    //{
                    //    panel = panel.FindName("Inner") as FrameworkElement;
                    //}

                    if (panel is Grid final)
                    {
                        final.Tag        = message;
                        news[message.Id] = new MediaPlayerItem {
                            File = animation, Container = final, Watermark = message.Content is MessageGame
                        };
                    }
                }
            }

            foreach (var item in _old.Keys.Except(news.Keys).ToList())
            {
                var presenter = _old[item].Presenter;
                if (presenter != null && presenter.MediaPlayer != null)
                {
                    presenter.MediaPlayer.Source = null;
                    presenter.MediaPlayer.Dispose();
                    presenter.MediaPlayer = null;
                }

                var container = _old[item].Container;
                if (container != null && presenter != null)
                {
                    container.Children.Remove(presenter);
                }

                _old.Remove(item);
            }

            if (!auto)
            {
                return;
            }

            foreach (var item in news.Keys.Except(_old.Keys).ToList())
            {
                if (_old.ContainsKey(item))
                {
                    continue;
                }

                var container = news[item].Container;
                if (container != null && container.Children.Count < 5)
                {
                    var player = new MediaPlayer();
                    player.AutoPlay                 = true;
                    player.IsMuted                  = auto;
                    player.IsLoopingEnabled         = true;
                    player.CommandManager.IsEnabled = false;
                    player.Source = MediaSource.CreateFromUri(new Uri("file:///" + news[item].File.Local.Path));

                    var presenter = new MediaPlayerView();
                    presenter.MediaPlayer      = player;
                    presenter.IsHitTestVisible = false;
                    presenter.Constraint       = container.Tag;

                    news[item].Presenter = presenter;
                    //container.Children.Insert(news[item].Watermark ? 2 : 2, presenter);
                    container.Children.Add(presenter);
                }

                _old[item] = news[item];
            }
        }
        public void Play(IEnumerable <TLMessage> items, bool auto)
        {
            var news = new Dictionary <string, MediaPlayerItem>();

            foreach (var message in items)
            {
                var container = Messages.ContainerFromItem(message) as ListViewItem;
                if (container == null)
                {
                    continue;
                }

                var document = message.GetDocument();
                if (document == null || !TLMessage.IsGif(document))
                {
                    continue;
                }

                var fileName = document.GetFileName();
                if (File.Exists(FileUtils.GetTempFileName(fileName)))
                {
                    var root = container.ContentTemplateRoot as FrameworkElement;
                    if (root is Grid grid)
                    {
                        root = grid.FindName("Bubble") as FrameworkElement;
                    }

                    var media = root.FindName("Media") as ContentControl;
                    var panel = media.ContentTemplateRoot as FrameworkElement;

                    if (message.Media is TLMessageMediaWebPage)
                    {
                        media = panel.FindName("Media") as ContentControl;
                        panel = media.ContentTemplateRoot as FrameworkElement;
                    }
                    else if (message.Media is TLMessageMediaGame)
                    {
                        panel = panel.FindName("Media") as FrameworkElement;
                    }

                    if (panel is Grid final)
                    {
                        news[FileUtils.GetTempFileUrl(fileName)] = new MediaPlayerItem {
                            Container = final, Watermark = message.Media is TLMessageMediaGame
                        };
                    }
                }
            }

            foreach (var item in _old.Keys.Except(news.Keys).ToList())
            {
                var presenter = _old[item].Presenter;
                if (presenter != null && presenter.MediaPlayer != null)
                {
                    presenter.MediaPlayer.Source = null;
                    presenter.MediaPlayer.Dispose();
                    presenter.MediaPlayer = null;
                }

                var container = _old[item].Container;
                if (container != null && presenter != null)
                {
                    container.Children.Remove(presenter);
                }

                _old.Remove(item);
            }

            if (!auto)
            {
                return;
            }

            foreach (var item in news.Keys.Except(_old.Keys).ToList())
            {
                var container = news[item].Container;
                if (container != null && container.Children.Count < 5)
                {
                    var player = new MediaPlayer();
                    player.AutoPlay                 = true;
                    player.IsMuted                  = true;
                    player.IsLoopingEnabled         = true;
                    player.CommandManager.IsEnabled = false;
                    player.Source = MediaSource.CreateFromUri(new Uri(item));

                    var presenter = new MediaPlayerView();
                    presenter.MediaPlayer      = player;
                    presenter.IsHitTestVisible = false;
                    presenter.Constraint       = container.DataContext;

                    news[item].Presenter = presenter;
                    container.Children.Insert(news[item].Watermark ? 2 : 2, presenter);
                }

                _old.Add(item, news[item]);
            }
        }