2013-01-05 57 views
1

我想创建一个简单的VB项目,它可以从窗体上的CCTV摄像头播放实时馈送。为此,我计划在我的VB表单中嵌入VLC。我已经在我的电脑上安装了VLC。在组件列表中,我也获得了VLC activeX组件的条目。无法在VB6中添加VideoLAN VLC组件

但是,当我尝试将其添加到我的项目中时,会发生错误。一个弹出如下所示:

enter image description here

我已经尝试了一些解决方案,对净的建议。但是,我无法解决这个唠叨的问题。

我的系统配置是:Win XP的32位SP3时,Visual Basic 6,VLC 2.0.1

而且,我最终的要求是在表格上玩网络摄像头饲料。我认为VLC最适合它,因为它可以直接播放网络摄像头。如果有其他解决方案可用,我也很乐意了解它们。

让我知道是否需要任何额外的细节。

+0

你尝试重新安装VLC? 通常,名称冲突意味着您的项目中还有另一个组件与另一个组件具有相同的名称。您是否碰巧也参考了Project References中的VLC?如果发生这种情况,可能会导致出现此错误。 – vbguyny

回答

0

很明显,这是VLC插件的问题,网络充斥着这个问题,可以追溯到2012年之前,它与您,计算机或您的安装无关。

问题很简单,错误告诉你到底发生了什么。旧插件在VB6下运行良好,当您添加控件时,它将2个不同的控件添加到VB6工具箱中。不知道有什么区别,但问题是,两个控件具有相同的名称。当VB6尝试添加此控件时,它试图添加两个不同的控件,它们现在具有相同的系统名称,VB6不允许。

传播这个词,不要让任何小老板告诉你重新安装VLC,因为那不会让你到任何地方,你需要一个旧版本的VLC。 :)

+0

发现更多一点,这是由开发人员选择弃用原始控件和函数以及在同一个ActiveX中创建第二个控件/函数所引起的。一些命名冲突发生在v1.1.0版本的弃用版本和导致该问题的ActiveX的当前版本之间。您将需要在V1.1之前获得一个版本。0用于VB6。不幸的是,这并不适用于我,因为这些旧版本不会跳过m3u8文件(甚至是本地..)。 – PsuFan

0

不知道这应该是一个单独的答案,但这里是实际的答案和解决方案!

此代码引用VideoLan VLC ActiveX插件 - axvlc.dll,只需要一个空格 注意:通过引用添加,而不是通过Components> Controls。

Dim vlcControl As Object 
Dim WithEvents vlcPlayer As AXVLC.VLCPlugin2 

Private Sub Form_Load() 

    Set vlcControl = Controls.Add("VideoLAN.VLCPlugin.2", "vlcControl") 

    vlcControl.Height = 6000 
    vlcControl.Width = 10000 
    vlcControl.Visible = True 

    Set vlcPlayer = vlcControl.object 

    ' I haven't figured out how to get this to play local files... 
    vlcPlayer.playlist.Add ("http://url.com/video.mp4") 
    vlcPlayer.playlist.play 
End Sub 


Private Sub vlcPlayer_MediaPlayerPlaying() 
    Debug.Print "Playing" 
End Sub 


Private Sub vlcPlayer_MediaPlayerEndReached() 
    Debug.Print "Stopped" 
End Sub 

编辑:这是一个不需要引用一个单独的例子:

此代码需要什么,但安装了一个空白表单和VLC的ActiveX /注册 注意:您没有访问到VLC事件触发器

Dim vlcControl As Object 

Private Sub Form_Load() 

    Set vlcControl = Controls.Add("VideoLAN.VLCPlugin.2", "vlcControl") 

    vlcControl.Height = 6000 
    vlcControl.Width = 10000 
    vlcControl.Visible = True 


    ' I haven't figured out how to get this to play local files... 
    vlcControl.object.playlist.Add ("http://url.com/video.mp4") 
    vlcControl.object.playlist.play 
End Sub 
0
vlc.playlist.Add ("file:///C:\video.mp4")