protected override void WndProc(ref Message m)
        {
            // Check if it's a notification message from the Quart component.
            if (m.Msg == WM_GRAPHNOTIFY)
            {
                int lEventCode;
                int lParam1, lParam2;

                try
                {
                    // Retrieve the message.
                    mEventEx.GetEvent(out lEventCode, out lParam1,
                                      out lParam2, 0);
                    mEventEx.FreeEventParams(lEventCode, lParam1, lParam2);

                    // Check if it's the end-of-file message.
                    if (lEventCode == EC_COMPLETE)
                    {
                        // Restart the playback.
                        mc.Stop();
                        position.CurrentPosition = 0;
                        mc.Run();
                    }
                }
                catch (Exception)
                {
                    // Never throw an exception from WndProc().
                    // You may want to log it, however.
                }
            }
            // Pass the message along to .NET.
            base.WndProc(ref m);
        }
Esempio n. 2
0
 private void timer1_Tick(object sender, EventArgs e)
 {
     if (j >= vlong)
     {
         timer1.Enabled = false;
     }
     if (j + 30 <= vlong)
     {
         Download("out" + (j + 30) + ".mp4", path + @"\out" + (j + 30) + ".mp4");
     }
     GC.Collect();
     j++;
     play(@"D:\temp\out" + j + ".mp4");
     m_MediaCtrl.Run();
 }
Esempio n. 3
0
    /**********************************************************
     * 摘要:此方法收集要显示的 AVI 的文件名,
     * 然后创建 Quartz COM 对象的实例。
     * 为了显示 AVI,程序对
     * IMediaControl 调用 RenderFile 和 Run。Quartz 使用自己的线程和窗口来显示
     * AVI。主线程阻塞在 ReadLine 上,直到用户按
     * Enter 键为止。
     *      输入参数:要显示的 avi 文件的位置
     *      返回值:void
     *************************************************************/

    public static void Main(string[] args)
    {
        // 检查用户是否传入了文件名:
        if (args.Length != 1)
        {
            DisplayUsage();

            return;
        }

        if (args[0] == "/?")
        {
            DisplayUsage();
            return;
        }

        String filename = args[0];

        // 检查文件是否存在
        if (!System.IO.File.Exists(filename))
        {
            Console.WriteLine("File " + filename + " not found.");
            DisplayUsage();
            return;
        }

        // 创建 Quartz 的实例
        // (Calls CoCreateInstance(E436EBB3-524F-11CE-9F53-0020AF0BA770,
        //  NULL, CLSCTX_ALL, IID_IUnknown,
        //  &graphManager).):
        try
        {
            QuartzTypeLib.FilgraphManager graphManager =
                new QuartzTypeLib.FilgraphManager();

            // IMediaControl 接口的 QueryInterface:
            QuartzTypeLib.IMediaControl mc =
                (QuartzTypeLib.IMediaControl)graphManager;

            // 对 COM 接口调用某些方法。
            // 将文件传递给 COM 对象上的 RenderFile 方法。
            mc.RenderFile(filename);

            // 显示文件。
            mc.Run();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unexpected COM exception: " + ex.Message);
        }
        // 等待完成。
        Console.WriteLine("Press Enter to continue.");
        Console.ReadLine();
    }
Esempio n. 4
0
    /************************************************************
     * Аннотация. Этот метод находит имя AVI-файла для воспроизведения,
     * а затем создает экземпляр COM-объекта Quartz.
     * Чтобы воспроизвести AVI-файл, программа вызывает методы RenderFile и Run из
     * IMediaControl. Quartz использует свои собственные поток и окно для воспроизведения
     * AVI-файла. Главный поток заблокирован на ReadLine до тех пор, пока пользователь не нажмет клавишу
     * ВВОД.
     *      Входные параметры: место размещения avi-файла, предназначенного для воспроизведения
     *      Возвращает: void
     **************************************************************/

    public static void Main(string[] args)
    {
        // Проверка передачи  пользователем имени файла:
        if (args.Length != 1)
        {
            DisplayUsage();

            return;
        }

        if (args[0] == "/?")
        {
            DisplayUsage();
            return;
        }

        String filename = args[0];

        // Проверка наличия файла
        if (!System.IO.File.Exists(filename))
        {
            Console.WriteLine("File " + filename + " not found.");
            DisplayUsage();
            return;
        }

        // Создание экземпляра Quartz
        // (Calls CoCreateInstance(E436EBB3-524F-11CE-9F53-0020AF0BA770,
        //  NULL, CLSCTX_ALL, IID_IUnknown,
        //  &graphManager).):
        try
        {
            QuartzTypeLib.FilgraphManager graphManager =
                new QuartzTypeLib.FilgraphManager();

            // QueryInterface для интерфейса IMediaControl:
            QuartzTypeLib.IMediaControl mc =
                (QuartzTypeLib.IMediaControl)graphManager;

            // Вызов некоторых методов COM-интерфейса
            // Передача файла в метод RenderFile COM-объекта.
            mc.RenderFile(filename);

            // Показать файл.
            mc.Run();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unexpected COM exception: " + ex.Message);
        }
        // Дождитесь завершения.
        Console.WriteLine("Press Enter to continue.");
        Console.ReadLine();
    }
Esempio n. 5
0
    /**********************************************************
     * Abstract: This method collects the filename of an AVI to show
     * then creates an instance of the Quartz COM object.
     * To show the AVI, the program calls RenderFile and Run on
     * IMediaControl. Quartz uses its own thread and window to
     * display the AVI. The main thread blocks on a ReadLine until
     * the user presses ENTER.
     *      Input Parameters: the location of the avi file it is going to display
     *      Returns: void
     *************************************************************/

    public static void Main(string[] args)
    {
        // Check to see if the user passed in a filename:
        if (args.Length != 1)
        {
            DisplayUsage();

            return;
        }

        if (args[0] == "/?")
        {
            DisplayUsage();
            return;
        }

        String filename = args[0];

        // Check to see if the file exists
        if (!System.IO.File.Exists(filename))
        {
            Console.WriteLine("File " + filename + " not found.");
            DisplayUsage();
            return;
        }

        // Create instance of Quartz
        // (Calls CoCreateInstance(E436EBB3-524F-11CE-9F53-0020AF0BA770,
        //  NULL, CLSCTX_ALL, IID_IUnknown,
        //  &graphManager).):
        try
        {
            QuartzTypeLib.FilgraphManager graphManager =
                new QuartzTypeLib.FilgraphManager();

            // QueryInterface for the IMediaControl interface:
            QuartzTypeLib.IMediaControl mc =
                (QuartzTypeLib.IMediaControl)graphManager;

            // Call some methods on a COM interface.
            // Pass in file to RenderFile method on COM object.
            mc.RenderFile(filename);

            // Show file.
            mc.Run();
        }
        catch (Exception ex)
        {
            Console.WriteLine("Unexpected COM exception: " + ex.Message);
        }
        // Wait for completion.
        Console.WriteLine("Press Enter to continue.");
        Console.ReadLine();
    }
Esempio n. 6
0
 internal void _Run()
 {
     mc.Run();
 }