placard
      calendar
      comment
      newblog
      newmessage
      search

 

      login
      link
      info


 
 
   
 
 
VLC控件使用方法
[ 2008-1-7 17:21:00 | By: zyjzyj2000 ]
 
由于VLC是专为Internet开发的控件,并不十分兼容VC,所以在VC中调用VLC控件时,经常出现一些错误,虽然不影响VLC控件的正常使用,但是开发已经产品时,这种现象是不允许出现的。经过多次试用,发现可以用一下方式,VC在调用VLC086D的控件时不会出现错误。具体步骤如下:
1) 在VC中添加VLC086D控件;
2) 添加变量CVLCControl *m_pvlc,
   添加#i nclude "vlccontrol.h";
3) 在初始化对话框时,添加如下代码:
        m_pvlc = NULL;
        m_pvlc = new CVLCControl;
        m_pvlc->Create("test",SW_SHOW,CRect(0,0,270,270),this,1234);
        m_pvlc->SetVisible(true);
   这样,在对话框的界面上就会显示VLC的控件;
4) 在对话框销毁时,要把删掉m_pvlc变量,即在OnDestroy()函数中添加
    if (m_pvlc!=NULL)
            delete m_pvlc;
5) 然后在需要播放影片的地方添加如下代码,就可以播放影片了。
   m_pvlc->stop();
   m_pvlc->playlistClear();
   VARIANT va;
   VariantInit(&va);
   m_pvlc->addTarget("E:\\Braveheart\\Braveheart\\BraveHeart2.avi",va,0x002+0x004,-666);
   m_pvlc->play();
 
 
 
Re:VLC控件使用方法
[ 2008-3-28 16:22:19 | By: xingyun(游客) ]
 
xingyun(游客)VLC转存视频的格式的方法是什么呢。能不能有个例子。就是简单转成MPG或AVI或MOV
 
个人主页 | 引用 | 返回 | 删除 | 回复
 
 
Re:VLC控件使用方法
[ 2008-2-28 21:48:32 | By: Frank(游客) ]
 
Frank(游客)在VC2005下,提示SetVisible错误,查看了VLC Control的定义和CWnd的定义,好像也没有这个成员函数,改成ShowWindow(SW_SHOWNORMAL),就可以了。
 
个人主页 | 引用 | 返回 | 删除 | 回复
 
 
Re:VLC控件使用方法
[ 2008-2-25 18:13:32 | By: feikong0119(游客) ]
 
feikong0119(游客)你好:
我非常需要 vlc编译好的vc6.0版本,如果有能给我发一份吗?现在正在调查流媒体服务器方面的技术。
我的email为:feikong0119@163.com。
 
个人主页 | 引用 | 返回 | 删除 | 回复
 
 
Re:VLC控件使用方法
[ 2008-1-10 14:50:44 | By: maojz(游客) ]
 
maojz(游客)zyjzyj2000:
你好!有个问题像你请教。我在mfc中用vlc同时打开多个播放窗口时,最多只能打开两个,三个以上就会有内存错误,你知道什么原因吗,而且多个播放窗口的时候播放也会报错!下面是我播放的主要代码
thanks
Best Regards,
maojz
void PlayDialog::play()
{
HRESULT hr;
SAFEARRAY *pSA;
SAFEARRAYBOUND aDim[1];
aDim[0].lLbound= 0;
aDim[0].cElements= 2;

// create bstr safe array
pSA= SafeArrayCreate(VT_BSTR,1,aDim);

if (!pSA )
{
/// do something here on your own
return;
}

BSTR HUGEP *pbstr;
hr=SafeArrayAccessData(pSA,(void HUGEP**)&pbstr);
if (FAILED(hr))
{
// do something to prevent further errors
return;
}

// got options? tell vlc activeX about it

pbstr[0] = SysAllocString(OLESTR(":vout-filter=deinterlace"));
pbstr[1] = SysAllocString(OLESTR(":deinterlace-mode=bop"));

SafeArrayUnaccessData(pSA);

// well, the vlc.playlistClear(); is not important here, if you want to safe your playlist
vlc.playlistClear();

// declare safe array as Variant
CComVariant vOptions(pSA);

try
{
vlc.addTarget ("G:\\a.mp3", vOptions, 1, 0);
}
catch (...)
{
// free your safe array
// and do something to prevent further errors of your code
return;
}

// start playing
vlc.play();

// destroy the array
SafeArrayDestroy(pSA);

}
 
个人主页 | 引用 | 返回 | 删除 | 回复
 
发表评论:
 
     
   
     
Powered by Oblog.