C#制作多媒体播放器

参考:http://www.codeproject.com/KB/directx/directshowmediaplayer.aspx

首先在项目->添加引用->浏览->[windows目录]system32->quartz.dll

添加using QuartzTypeLib;

所用到的变量:

       private const int WM_APP = 0x8000;
        private const int WM_GRAPHNOTIFY = WM_APP + 1;
        private const int EC_COMPLETE = 0x01;
        private const int WS_CHILD = 0x40000000;
        private const int WS_CLIPCHILDREN = 0x2000000;

        enum MediaStatus
        {
            None,
            Stopped,
            Paused,
            Running
        }
        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;

应用程序源码下载地址:

http://download.csdn.net/source/463903

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
C#中使用Emgu库可以实现一个简单的OpenCV播放器。首先,你需要使用Emgu提供的方法读取视频文件并获取相关信息。你可以使用`CvInvoke.cvCreateFileCapture`方法来读取视频文件,然后使用`CvInvoke.cvGetCaptureProperty`方法获取视频的总帧数、宽度、高度、当前帧位置和帧频等信息。例如,你可以使用以下代码获取视频的总帧数: ```csharp IntPtr capture = CvInvoke.cvCreateFileCapture(file); double totalFrames = CvInvoke.cvGetCaptureProperty(capture, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_FRAME_COUNT); ``` 如果你想定位到视频的某一帧,可以使用`CvInvoke.cvSetCaptureProperty`方法。例如,以下代码将视频定位到第23帧: ```csharp int newPos = 23; CvInvoke.cvSetCaptureProperty(capture, Emgu.CV.CvEnum.CAP_PROP.CV_CAP_PROP_POS_FRAMES, newPos); ``` 要将Emgu获取的图像转换为PictureBox可以识别的Bitmap,你可以使用以下方法。首先,使用`CvInvoke.cvQueryFrame`方法读取下一帧图像,然后创建一个新的`Image<Bgr, byte>`对象,并使用`CvInvoke.cvCopy`方法将图像数据复制到新的对象中。最后,使用`ToBitmap`方法将`Image<Bgr, byte>`对象转换为Bitmap对象。 ```csharp var frame = CvInvoke.cvQueryFrame(capture); Image<Bgr, byte> dest = new Image<Bgr, byte>(movieInfo.width, movieInfo.height); CvInvoke.cvCopy(frame, dest, IntPtr.Zero); Bitmap bitmap = dest.ToBitmap(); ``` 通过以上方法,你可以实现一个基本的C# OpenCV播放器。你可以根据需要添加其他功能,如播放控制、图像处理等。 #### 引用[.reference_title] - *1* *2* *3* [OpenCV(Emgu)入门系列(9):在C#中,使用Emgu+PictureBox实现一个简易的视频播放器...](https://blog.csdn.net/weixin_34341229/article/details/93841287)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值