2012-04-06 22 views
5

Sto scrivendo un'applicazione che aprirà vlc, aggiungerà un file alla sua playlist e la riprodurrà. Sto avendo alcuni problemi l'ultimo 2.Controllo VLC tramite C#

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

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

Questo non funziona ... Tutte le idee?

Grazie

+0

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

risposta

2

C# può accedere a VLC attraverso il suo livello COM. La prima cosa da fare è registrare axvlc.dll. Aprire una finestra del cmd e digitare:

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

si dovrebbe ricevere una finestra di dialogo che conferma che la DLL è stato registrato con successo. Aprire VisualStudio e creare un nuovo progetto WinForms e aggiungere un riferimento all'oggetto COM VLC COM. Vai al Modulo cs presentare

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: La VLCPluginClass è stata sconsigliata, utilizzare VLCPlugin2Class

+2

provato a farlo, ma ottenere 'tipo Interop 'AXVLC.VLCPlugin2Class' non può essere incorporato. Usa invece l'interfaccia applicabile. Dal compilatore. – lorus

+4

Per rimuovere il "tipo di interoperabilità" AXVLC.VLCPlugin2Class "non può essere incorporato. Utilizzare invece l'interfaccia applicabile" Errore. Fare clic con il tasto destro del mouse sul riferimento AXVLC e sulle proprietà goto. Rendi falso il "Tipo di Interops Incorporato". – Ray

4

La nuova versione di VLC ha bisogno di "file: ///" in all'inizio del nome del file. Dovrebbe funzionare se lo aggiungi. Si prega di provare quanto segue e vedere se risolve il tuo problema. uso: alxplugin1.addTarget("file:///" + "C:\\test.avi", null, AXVLC.VLCPlaylistMode.VLCPlayL­istReplaceAndGo,0);

+0

Questo ha funzionato per me. Sfortunatamente, nessuno dei wrapper ha documentato questo. Grazie. –