2012-04-06 15 views
5

Ich schreibe eine Anwendung, die vlc öffnet, eine Datei zu ihrer Wiedergabeliste hinzufügt und sie abspielt. Ich habe ein paar Probleme auf den letzten 2.Steuerung von VLC über C#

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

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

Dies funktioniert nicht ... Irgendwelche Ideen?

Danke

+0

http://www.codeproject.com/Articles/109639/nVLC – Flot2011

Antwort

2

C# kann über seine COM-Schicht auf VLC zugreifen. Als erstes muss die axvlc.dll registriert werden. Öffnen Sie ein cmd-Fenster und geben Sie ein:

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

Sie sollten ein Dialogfeld erhalten, das bestätigt, dass Ihre DLL erfolgreich registriert wurde. Öffnen Sie VisualStudio, erstellen Sie ein neues WinForms-Projekt, und fügen Sie dem COM VLC COM-Objekt einen Verweis hinzu. Zum Formular 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(); 
      } 
    } 
} 

Hinweis Datei: Die VLCPluginClass veraltet wurde, verwenden Sie VLCPlugin2Class

+2

dies versucht, aber immer 'Interop Typ 'AXVLC.VLCPlugin2Class' kann nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle. "Aus dem Compiler. – lorus

+4

Um den "Interop-Typ" zu entfernen, kann AXVLC.VLCPlugin2Class nicht eingebettet werden. Verwenden Sie stattdessen die entsprechende Schnittstelle "error. Klicken Sie mit der rechten Maustaste auf die Eigenschaften AXVLC-Referenz und Goto. Setzen Sie den Typ "Eingebetteter Interop-Typ" auf "Falsch". – Ray

4

Die neuere Version von VLC braucht "file: ///" in Anfang des Dateinamens. Es sollte funktionieren, wenn Sie dies hinzufügen. Bitte versuchen Sie folgendes und sehen Sie, ob es Ihr Problem löst. Verwendung: alxplugin1.addTarget("file:///" + "C:\\test.avi", null, AXVLC.VLCPlaylistMode.VLCPlayL­istReplaceAndGo,0);

+0

Das hat bei mir funktioniert. Leider hat dies keiner der Wrapper dokumentiert. Vielen Dank. –