2012-04-06 55 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