C#调用QuartzTypeLib播放电影

这是一个C#应用程序,通过QuartzTypeLib库实现流媒体文件的播放。程序使用FilgraphManager加载媒体文件,设置播放窗口,并提供了播放、暂停、停止等控制功能。当窗口大小改变时,会自动调整视频显示区域。此外,还集成了OpenFileDialog用于选择媒体文件,并支持全屏模式。
摘要由CSDN通过智能技术生成

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuartzTypeLib;   // quartz.dll
using System.Threading;

namespace RTSPMedia
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            trackBar1.SetRange(0, 1000);

        }

        private const int WM_APP = 0x8000;
        private const int WM_GRAPHNOTIEY = WM_APP + 1;
        private const int EC_COMPLETE = 0x01;
        private const int WS_CHILD = 0x40000000;
        private const int WS_CLIPCHILDREN = 0x2000000;
        private FilgraphManager m_objFilterGraph = null;
        private IBasicAudio m_objBasicAudio = null;
        private IVideoWindow m_objVideoWindow = null;
        private IMediaEvent m_objMediaEvent = null;
        private IMediaEventEx m_objMediaEventEx = null;
        private IMediaPosition m_objMediaPosition = null;
        private IMediaControl m_objMediaControl = null;
        enum MadiaStatus { None, Stopped, Paused, Running };
        private MadiaStatus m_CurrentStatus = MadiaStatus.None;
        private Thread td;
        private OpenFileDialog openFileDialog;
        private Rectangle vedioRec;
        private Rectangle panelRec;
        int vedioWidth = 0;
        int vedioHeight = 0;

        private void CleanUp()
        {
            if (m_objMediaControl != null)
            {
                m_objMediaControl.Stop();
            }
            m_CurrentStatus = MadiaStatus.Stopped;
            if (m_objMediaEventEx != null)
                m_objMediaEventEx.SetNotifyWindow(0, 0, 0);
            if (m_objVideoWindow != null)
            {
                m_objVideoWindow.Visible = 0;
                m_objVideoWindow.Owner = 0;
            }
            if (m_objMediaControl != null) m_objMediaControl = null;
            if (m_objMediaPosition != null) m_objMediaPosition = null;
            if (m_objMediaEventEx != null) m_objMediaEventEx = null;
            if (m_objMediaEvent != null) m_objMediaEvent = null;
            if (m_objBasicAudio != null) m_objBasicAudio = null;
            if (m_objFilterGraph != null) m_objFilterGraph = null;
        }

        private void Open_Dialog(object sender, System.EventArgs e)
        {
            openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Media Files|*.mpg;*.avi;*.wma;*.mov;*.mav;*.mp2;*.mp3;*.rm;*.rmvb|All Files|*.*";
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值