2010-08-05 11 views
9

Kennt jemand einen C# VLC 1.1 Wrapper? Ich habe einige Wrapper für ältere Versionen von VLC gefunden (habe sie noch nicht ausprobiert), aber keine für die neue Version.C# VLC 1.1 Wrapper

Also, wenn Sie irgendwelche wissen, bitte posten Sie sie.

+0

Kasse http://vlcdotnet.codeplex.com/ ist ziemlich gut – surya

+0

Aber sehr schlecht dokumentiert. – obiwahn

Antwort

1

Ich war auch auf der Suche nach diesem und ich habe festgestellt, dass die meisten .NET-Wrappers entweder veraltet sind und nicht sofort funktionieren oder eine Lizenz haben, die nicht zu einer proprietären Software passt.

Sagte, dass ich begann über meinen eigenen Wrapper zu bauen. Da die meisten Wrapper zu viel Code hatten und sehr verwirrend zu verstehen und zu verwenden waren, wuchs die Idee, mich selbst zum Wrapper zu machen. Sagte, dass, http://www.helyar.net/2009/libvlc-media-player-in-c-part-2/ ist ein schöner Ort, wo Sie anfangen können, Ihren eigenen Code zu machen.

Beachten Sie, dass libvlc und libvlccore die Lizenz für LGPL geändert haben. Und wie Jean-Baptiste Kempf in einem Videolan Forum Thread sagte: "Sie können die dlls (libVLC und libVLCcore), die mit VLC-Installation> = 2.0.0 kommen."

Jetzt ist es zum Laufen zu bringen, müssen Sie libvlc.dll und libvlccore.dll im selben Verzeichnis wie die exe-Datei als Teil des Codes auf lokales Verzeichnis zeigt setzen ...

Um Interop mit einer Funktion von libvlc Sie wie folgt vor:

erstellen Sie eine Klasse, die die Funktionen halten Sie möchten mit an Interop:

static class LibVlc 
    { 
     [DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)] 
     public static extern IntPtr libvlc_new(int argc, [MarshalAs(UnmanagedType.LPArray, 
      ArraySubType = UnmanagedType.LPStr)] string[] argv); 

     [DllImport("libvlc", CallingConvention = CallingConvention.Cdecl)] 
     public static extern void libvlc_release(IntPtr instance); 
    } 

mit Hilfe von vlc docs, libvlc.html "> http: // www .videolan.org/developers/vlc/doc/doxygen/html/group_libvlc.html können Sie nur haben die Funktionen, die Sie brauchen und nicht mehr.

Die CallingConvention = CallingConvention.Cdecl ist für .NET 4.0 erforderlich. Die beiden obigen Funktionen werden nichts Interessantes für sich alleine machen. Sie initialisieren und veröffentlichen nur Ressourcen, die vom VLC-Framework benötigt werden.

Vorsicht bei Dateipfaden (speziell wenn sie auf die Plugin-Ordner Verknüpfung), wie sie benötigen „/“ anstelle von „\“ haben, wie in „C:/Programme/...“

+1

Ich verstehe den Zweck dieser Antwort nicht. Sie behaupten, Sie hätten es nicht verwenden können, und Sie erhalten ein Null-Ergebnis für eine Methode, Sie sollten den Inhalt wirklich von der Website selbst aufnehmen. –

+0

Ich bearbeite meine Antwort, da ich sie jetzt ausführen kann. Ich dachte, dass er es sich ansehen könnte, obwohl ich es nicht laufen konnte. – HugoFS

+0

Wirklich nicht verstanden, die down vote:/Ich war mir sicher, dass es etwas mit meinem Code war, und nicht mit dem Blog-Post und dass es wert war zu teilen, da ich Schwierigkeiten hatte, es zu finden.Ich denke, dass ich gebannt werde, wenn ich weiterhin solche Kommentare bekomme. – HugoFS