2012-04-06 26 views
5

Estoy escribiendo una aplicación que abrirá vlc, agregará un archivo a su lista de reproducción y lo reproducirá. Estoy teniendo algunos problemas en los últimos 2.Control de VLC a través de C#

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

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

Esto no funciona ... ¿Alguna idea?

Gracias

+0

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

Respuesta

2

C# pueden acceder a VLC a través de su capa COM. Lo primero que debe hacer es registrar axvlc.dll. Abra una ventana de cmd y escriba:

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

Debería recibir un cuadro de diálogo que confirme que su dll se registró correctamente. Abra VisualStudio y cree un nuevo proyecto WinForms y agregue una referencia al objeto COM COM VLC. Ir al Formulario cs presentar

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

Nota: El VLCPluginClass está desfasada, utilice VLCPlugin2Class

+2

probado este, pero conseguir la interoperabilidad 'tipo 'AXVLC.VLCPlugin2Class' no se puede incrustar. En su lugar, use la interfaz correspondiente. Del compilador. – lorus

+4

Para eliminar el "Tipo de interoperabilidad 'no se puede incrustar AXVLC.VLCPlugin2Class'. Use el error de interfaz aplicable en su lugar". Haga clic con el botón derecho en la referencia de AXVLC y vaya a las propiedades. Haga que el "Tipo de interbloqueo incrustado" sea falso. – Ray

4

La versión más reciente de VLC necesita "file: ///" en el principio del nombre de archivo. Debería funcionar si agregas esto. Intente lo siguiente y vea si resuelve su problema. uso: alxplugin1.addTarget("file:///" + "C:\\test.avi", null, AXVLC.VLCPlaylistMode.VLCPlayL­istReplaceAndGo,0);

+0

Eso funcionó para mí. Desafortunadamente, ninguno de los contenedores documentó esto. Gracias. –