Exemplo n.º 1
0
 public static void Close()
 {
     if (axMediaplayer == null)
     {
         return;
     }
     curcount = 0;
     axMediaplayer.Ctlcontrols.stop();
     axMediaplayer.close();
     //axMediaplayer.Dispose();
     axMediaplayer = null;
     if (null != playthread)
     {
         try
         {
             if (playthread.IsAlive)
             {
                 playthread.Abort();
             }
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
         finally
         {
             playthread = null;
         }
     }
 }
        /* Window_Closing
         * Description: Event handler for when the window closes.
         * Args: sender - The object where the event originated
         *       e - The event arguments
         */
        private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            if (rowid != -1 && (clipStart != origStartTime || clipStop != origStopTime))
            {
                updateStack.PushUpdate(rowid, origStartTime.ToString(), origStopTime.ToString());
            }

            try
            {
                foreach (CommentRow crow in commentTable.Items)
                {
                    if (!string.IsNullOrEmpty(crow.comment))
                    {
                        invideoCommentH.LoadComment(rowid, crow.start, crow.stop, crow.comment);
                    }
                }
            }
            catch (InvalidCastException) {  }

            axWmp.close();
        }
Exemplo n.º 3
0
 private void InitEventHandler()
 {
     this.Loaded             += (sender, e) => { GoToPlayState(); };
     this.progresstimer.Tick += new EventHandler(progresstimer_Tick);
     this.tagtimer.Tick      += new EventHandler(tagtimer_Tick);
     ME_MainShow.MediaError  += (sender, e) =>
     {
         App.Current.Shutdown();
     };
     #region 滑竿事件
     UC_ProgressBar.ProgressDragBegin += (sender, e) =>
     {
         progresstimer.Stop();
     };
     UC_ProgressBar.ProgressValueChanged += (sender, e) =>
     {
         CurrentTag = "进度 : " + (int)(e.NewValue / UC_ProgressBar.Maximum * 100) + "%";
     };
     UC_ProgressBar.ProgressDragEnd += (sender, e) =>
     {
         progresstimer.Start();
         SeekProgress(e / this.UC_ProgressBar.Maximum);
     };
     #endregion
     #region  钮事件
     BTN_GoForward.Click += (sender, e) =>
     {
         int index = videoList.IndexOf(currentVideo);
         if (index != -1)
         {
             currentVideo = videoList[(index + 1) % videoList.Count];
             ReLoadMedia();
         }
     };
     BTN_Back.Click += (sender, e) =>
     {
         ME_MainShow.close();
         this.Hide();
         ParentWindow.Hide();
     };
     BTN_GoBackward.Click += (sender, e) =>
     {
         int index = videoList.IndexOf(currentVideo);
         if (index != -1)
         {
             currentVideo = videoList[(index - 1 + videoList.Count) % videoList.Count];
             ReLoadMedia();
         }
     };
     BTN_Play.Click  += (sender, e) => { GoToPlayState(); };
     BTN_Pause.Click += (sender, e) => { GoToPauseState(); };
     BTN_Vup.Click   += (sender, e) =>
     {
         double cv = ME_MainShow.settings.volume;
         cv += 5;
         SetVolume(cv);
     };
     BTN_Vdown.Click += (sender, e) =>
     {
         double cv = ME_MainShow.settings.volume;
         cv -= 5;
         SetVolume(cv);
     };
     BTN_Screen.Click += (sender, e) =>
     {
         SwitchScreenSize();
     };
     #endregion
 }
Exemplo n.º 4
0
        private void Record_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog1 = new SaveFileDialog
            {
                InitialDirectory = @"D:\Documents",
                FileName         = "Film.avi",
                Filter           = "Fichier video (*.avi)|*.avi"
            };

            //        if (mediaPlayer.playState == WMPLib.WMPPlayState.wmppsPlaying)
            {
                mediaPlayer.Visible = false;
                mediaPlayer.Ctlcontrols.stop();
                mediaPlayer.close();
            }
            splitContainer1.Panel2Collapsed = false;
            curImage    = Image.FromFile(ImPath);
            curShow     = (Image)curImage.Clone();
            isRecording = true;
            Refresh();
            int imageNumber = 1;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                currentFile = saveFileDialog1.FileName;
                if (listeEtapes.Count > 1)
                {
                    #region Calcul longueur totale du chemin
                    long      longTot = 0;
                    RouteStep init    = PtToScreen(listeEtapes[0]);
                    for (int i = 1; i < listeEtapes.Count; i++)
                    {
                        RouteStep end = PtToScreen(listeEtapes[i]);
                        longTot = longTot + StepLength(init, end);
                        init    = end;
                    }
                    #endregion
                    uint            framePerSecond = 25;
                    string          fichier        = saveFileDialog1.FileName;
                    AviReaderWriter aviWriter      = new AviReaderWriter();
                    try
                    {
                        aviWriter.Open(fichier, framePerSecond, videoSize.Width, videoSize.Height);
                        // image de base
                        Bitmap bp = new Bitmap(curImage, videoSize.Width, videoSize.Height);
                        bp.RotateFlip(RotateFlipType.Rotate180FlipX);
                        aviWriter.AddFrame(bp);
                        bp.Dispose();
                        Graphics gr = Graphics.FromImage(curImage);
                        init = PtToScreen(listeEtapes[0]);
                        Pen p = new Pen(init.Color, init.LineWidth);
                        for (int i = 1; i < listeEtapes.Count; i++)
                        {
                            #region One line
                            RouteStep fin = PtToScreen(listeEtapes[i]);
                            float     x   = fin.Location.X - init.Location.X;
                            float     y   = fin.Location.Y - init.Location.Y;
                            //long largeurEtape = (long)(x * x);
                            //long hauteurEtape = (long)(y * y);
                            long longEtape = (long)Math.Sqrt((long)(x * x) + (long)(y * y)) * (long)vidLength / longTot;
                            if (longEtape < 1)
                            {
                                longEtape = 5;
                            }
                            int   d     = (int)longEtape;
                            float slope = y / x;
                            for (int j = 1; j <= d; j++)
                            {
                                #region One step
                                gr = Graphics.FromImage(curImage);
                                long step  = (long)x * j / d;
                                long hstep = (long)(step * slope);
                                if (init.Text != "")
                                {
                                    gr.DrawString(init.Text, new Font("Times New Roman", 20), Brushes.White, new Point(init.Location.X + 2, init.Location.Y));
                                }
                                RouteStep place = PtToScreen(new RouteStep(new Point((int)(init.Location.X + step), (int)(init.Location.Y + hstep))));
                                gr.DrawLine(p, place.Location.X, place.Location.Y, place.Location.X + 2, place.Location.Y + 2);
                                curShow.Dispose();
                                curShow  = (Image)curImage.Clone();
                                curIcone = (Image)curShow.Clone();
                                gr       = Graphics.FromImage(curIcone);
                                DrawIcon(gr, place, 20, 20);
                                imageNumber      += 1;
                                nombreImages.Text = imageNumber.ToString() + " image";
                                if (imageNumber > 1)
                                {
                                    nombreImages.Text += "s";
                                }
                                AddImageToFilm(aviWriter, curShow);
                                AddImageToFilm(aviWriter, curIcone);
                                //curIcone.Dispose();
                                Refresh();
                                #endregion
                            }
                            init = fin;
                            p.Dispose();
                            p = new Pen(init.Color, init.LineWidth);
                            #endregion
                        }
                        if (init.Text != "")
                        {
                            gr.DrawString(init.Text, init.Font, Brushes.White, new Point(init.Location.X + 2, init.Location.Y));
                        }
                        curShow.Dispose();
                        curShow = (Image)curImage.Clone();
                        gr      = Graphics.FromImage(curShow);
                        DrawIcon(gr, init);

                        for (int uu = 0; uu < 10; uu++)
                        {
                            AddImageToFilm(aviWriter, curIcone);
                        }
                    }
                    catch (AviException ex)
                    {
                        MessageBox.Show("AVI Exception in: " + ex.ToString());
                    }
                    finally
                    {
                        aviWriter.Close();
                    }
                }
            }
            isRecording = false;
            //splitContainer1.Panel2Collapsed = true;
        }