2012-04-06 129 views
5

我正在编写一个应用程序,它将打开vlc,将文件添加到其播放列表并播放它。我有最后2个问题。通过C#控制VLC

AXVLC.VLCPlugin alxplugin1 = new AXVLC.VLCPlugin(); 

       alxplugin1.addTarget("C:\\test.avi", null, AXVLC.VLCPlaylistMode.VLCPlayListInsert, 0); 
       alxplugin1.play(); 

这是行不通的...任何想法?

谢谢

+0

http://www.codeproject.com/Articles/109639/nVLC – Flot2011 2012-04-14 21:35:04

回答

2

C#可以通过它的COM层访问VLC。首先要做的是注册axvlc.dll。打开一个cmd窗口并键入:

C:\Windows\System32\regsvr32.exe C:\Program Files (x86)\VideoLAN\VLC\axvlc.dll 

您应该会收到一个对话框,确认您的dll已成功注册。打开VisualStudio并创建一个新的WinForms项目并添加对COM VLC COM对象的引用。转至表CS文件

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
      public Form1() 
      { 
       InitializeComponent(); 

       AXVLC.VLCPlugin2Class p = new AXVLC.VLCPlugin2Class(); 
       p.addTarget("C:\\zk.m4a", null, VLCPlaylistMode.VLCPlayListInsert, 0); 
       p.play(); 
      } 
    } 
} 

注:VLCPluginClass已被废弃,用VLCPlugin2Class

+2

想这一点,但得到'互操作型“AXVLC.VLCPlugin2Class”不能被嵌入。在编译器中使用适用的接口。 – lorus 2013-07-07 10:13:54

+4

要删除“互操作类型”AXVLC.VLCPlugin2Class“不能嵌入。使用适用的接口,而不是”错误。右键单击AXVLC参考和goto属性。使“嵌入的Interops类型”为false。 – Ray 2014-06-22 18:31:30

4

VLC的较新版本需要“文件:///”文件名开头。它应该工作,如果你添加这个。请尝试以下方法,看看它是否能解决您的问题。 使用: alxplugin1.addTarget("file:///" + "C:\\test.avi", null, AXVLC.VLCPlaylistMode.VLCPlayL­istReplaceAndGo,0);

+0

这对我有效。不幸的是,没有一个包装文件记录了这一点。谢谢。 – 2014-04-10 20:07:48