MFC中调用VLC ActiveX plugin v1

时间:2022-10-25 18:55:09

看了一些博客,对VLC的ActiveX控件调用,写的不是很清楚。所以以菜鸟的角度写两篇博文,谢谢那些帮助我的人,让其他人少走弯路。这篇是调用ActiveX plugin v1,比较简单一点。

 

环境:Windows XP, VC 6.0

1.注册VLC的ActiveX控件

  网上有很多,可以自己查。最简单的办法是安装一个VLC。系统自动注册。

2.不废话,列详细步骤

  在VC6.0中,“新建”->“工程”->“MFC AppWizard[exe]”。选择您要建立的程序应用类型是“基本对话框”,点击"完成"。

  “工程”->“增加到工程”->“Components and Control Gallery”->"Registered ActiveX Controls"->双击"VideoLAN VLC ActiveX Plugin v1"

  工程中已经比原来增加两个新文件,即vlccontrol.h和vlccontrol.cpp。要看这两个文件的功能,到vlccontrol.h中,可以看到一系列的public函数。相信,你一看就懂。

  我设置的工程名是VCL1.

  在VLC1Dlg.cpp中,#include "vlccontrol.h"、声明全局变量CVLCControl *pvlc;

  在CVLC1Dlg::OnInitDialog()添加代码,如下:

 

   pvlc = NULL;
   pvlc = new CVLCControl();
   pvlc->Create( "vlc show", SW_SHOW, CRect(0,0,370,280), this, 1234);
   pvlc->ShowWindow( SW_SHOWNORMAL );
   pvlc->SetVisible( true );

 

  对按钮“确定”和“取消”进行编辑。Add end Edit。

  void CVLC1Dlg::OnOK()
  {
     // TODO: Add extra validation here

    //反交错,当然你也可以设置别的参数
     BSTR option = SysAllocString(L":vout-filter=deinterlace :deinterlace-mode=mid");

     VARIANT va;
     va.vt = VT_BSTR; 
     VariantInit( &va );
     va.bstrVal = option;

    //播放UDP流

     pvlc->addTarget("udp://@239.202.0.5:5001", va, 1, 0);

    //播放本地视频

    //pvlc->addTarget("D:\DISC.rm", va, 1, 0);
     pvlc->play();


     //CDialog::OnOK();
  }

  void CVLC1Dlg::OnCancel()
  {
     // TODO: Add extra cleanup here
     if( pvlc != NULL )
        delete pvlc;
 
     CDialog::OnCancel();
  }

应该说是最简单明了的介绍了。纯属帮助入门的人。