看了一些博客,对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();
}
应该说是最简单明了的介绍了。纯属帮助入门的人。