2010-08-05 15 views
9

¿Alguien sabe acerca de un C# VLC 1.1 Wrapper? He encontrado algunas envolturas para versiones anteriores de VLC (aún no las he probado), pero ninguna para la nueva versión.C# VLC 1.1 Wrapper

Así que si conoce alguna, por favor publíquelas.

+0

la caja http://vlcdotnet.codeplex.com/ es bastante bueno – surya

+0

Pero muy poco documentado. – obiwahn

Respuesta

1

Estaba buscando esto también y he encontrado que la mayoría de los contenedores .NET que existen están desactualizados y no funcionan de inmediato o tienen una licencia que no se ajusta a un software propietario.

Dijo eso, comencé a pensar en construir mi propia envoltura. Como la mayoría de los envoltorios tenían demasiado código y son muy confusos de entender y usar, la idea de hacerme el envoltorio estaba creciendo. Dijo que, http://www.helyar.net/2009/libvlc-media-player-in-c-part-2/ es un buen lugar para comenzar a crear su propio código.

Tenga en cuenta que libvlc y libvlccore han cambiado la licencia a LGPL. Y como dijo Jean-Baptiste Kempf en un hilo de foro de videolan: "Puede obtener los dlls (libVLC y libVLCcore) que vienen con la instalación de VLC> = 2.0.0".

Ahora para conseguir que funcione, usted tiene que poner libvlc.dll y libvlccore.dll en el mismo directorio que el archivo ejecutable como una parte del código está señalando a dir locales ...

Para INTEROP con uno la función de libvlc haga lo siguiente:

crear una clase que llevará a cabo las funciones que le gustaría INTEROP con:

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); 
    } 

con la ayuda de documentos VLC, libvlc.html "> http: // www .videolan.org/developers/vlc/doc/doxygen/html/group_libvlc.html, solo puede tener las funciones que necesitas y nada más.

CallingConvention = CallingConvention.Cdecl es necesario para .NET 4.0+. Las dos funciones anteriores no harán nada interesante por sí mismas. Simplemente están inicializando y liberando los recursos que necesita el marco de VLC.

Cuidado con rutas de archivos (especialmente cuando se enlaza a la carpeta plugins), ya que necesitan tener "/" en lugar de "\" como en "C:/Archivos de programa/..."

+1

No entiendo el propósito de esta respuesta. Reclama que no ha podido utilizarlo y obtiene un resultado nulo para un método, realmente debería incluir el contenido del sitio web. –

+0

Editaré mi respuesta ya que ahora puedo ejecutarla. Pensé que podría echarle un vistazo aunque no pude hacerlo funcionar. – HugoFS

+0

Realmente no entendí el voto negativo:/Estaba seguro de que era algo con mi código, y no con la publicación del blog y que valía la pena compartirlo ya que tuve problemas para encontrarlo.Creo que me van a prohibir si continúo recibiendo votos bajos como este. – HugoFS