Ejemplo n.º 1
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();
    }
Ejemplo n.º 2
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();
    }
Ejemplo n.º 3
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();
    }
Ejemplo n.º 4
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();
    }
Ejemplo 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();
    }
Ejemplo n.º 6
0
 private void play(string args)
 {
     m_FilterManager = new QuartzTypeLib.FilgraphManager();                      //
     m_FilterManager.RenderFile(args);                                           //设置待播放文件
     m_VideoWindow              = m_FilterManager as QuartzTypeLib.IVideoWindow; //设置播放窗体
     m_VideoWindow.Owner        = (int)(this.panel1.Handle);
     m_VideoWindow.WindowStyle &= ~WS_BORDER;
     m_VideoWindow.SetWindowPosition(0, 0, this.panel1.Width, this.panel1.Height);
     m_MediaEvent   = m_FilterManager as QuartzTypeLib.IMediaEvent;    //设置媒体事件
     m_MediaEventEx = m_FilterManager as QuartzTypeLib.IMediaEventEx;  //设置媒体事件扩展
     m_MediaPos     = m_FilterManager as QuartzTypeLib.IMediaPosition; //设置媒体位置
     m_MediaCtrl    = m_FilterManager as QuartzTypeLib.IMediaControl;  //设置媒体控制器
 }
        private void cmdPlay_Click(object sender, EventArgs e)
        {
            if (mc == null)
            {
                // This audio is being played for the first time.
                // Load the file.

                // Access the IMediaControl interface.
                graphManager = new QuartzTypeLib.FilgraphManager();
                mc           = (QuartzTypeLib.IMediaControl)graphManager;
                audio        = (QuartzTypeLib.IBasicAudio)graphManager;
                position     = (QuartzTypeLib.IMediaPosition)graphManager;
                mEventEx     = (QuartzTypeLib.IMediaEventEx)graphManager;

                try
                {
                    // Choose a file.
                    mc.RenderFile(Application.StartupPath + "\\test.mp3");
                    mEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);
                }
                catch (FileNotFoundException err)
                {
                    MessageBox.Show("File not found.");
                    return;
                }
                catch (COMException err)
                {
                    MessageBox.Show("COM error.");
                    return;
                }
            }

            // Start playing the audio asynchronously.
            try
            {
                statusLabel1.Text = "Total: " +
                                    ConvertTimeToString((int)position.Duration);

                mc.Run();
                timer1.Start();
            }
            catch (COMException err)
            {
                MessageBox.Show("COM error.");
            }
        }
Ejemplo n.º 8
0
		private void cmdPlay_Click(object sender, EventArgs e)
		{
			if (mc == null)
			{
				// This audio is being played for the first time.
				// Load the file.

				// Access the IMediaControl interface.
				graphManager = new QuartzTypeLib.FilgraphManager();
				mc = (QuartzTypeLib.IMediaControl)graphManager;
				audio = (QuartzTypeLib.IBasicAudio)graphManager;
				position = (QuartzTypeLib.IMediaPosition)graphManager;
				mEventEx = (QuartzTypeLib.IMediaEventEx)graphManager;

				try
				{
					// Choose a file.
					mc.RenderFile(Application.StartupPath + "\\test.mp3");
					mEventEx.SetNotifyWindow((int)this.Handle, WM_GRAPHNOTIFY, 0);			
				}
				catch (FileNotFoundException err)
				{
					MessageBox.Show("File not found.");
					return;
				}
				catch (COMException err)
				{
					MessageBox.Show("COM error.");
					return;
				}
			}

			// Start playing the audio asynchronously.
			try
			{
				statusLabel1.Text = "Total: " +
					ConvertTimeToString((int)position.Duration);

				mc.Run();
				timer1.Start();			
			}
			catch (COMException err)
			{
				MessageBox.Show("COM error.");
			}
		}