Ich möchte ein sehr einfaches Plugin für VLC schreiben, das Webanfragen stellt, wenn ein Medium abgespielt, angehalten oder gestoppt wird. Es ist einem Scrobbling-Plugin sehr ähnlich.
Ich habe gesehen, dass VLC Plugins und Extensions unterstützt (das sind sehr einfache Lua-Skripte), aber ich konnte keine Informationen dazu finden.
Ich denke, ich müsste ein Plugin schreiben, das einige Callbacks registriert - habe ich recht? Irgendeine Idee, wie ich das erreichen könnte? Es scheint ein ziemlicher harter Kampf zu sein. Kann ich das mit Python machen?
Ich verwende VLC 2.2.1 unter Windows.
Hier ist ein einfaches Lua-Plugin, das die Wiedergabe / Pause / Stopp-Ereignisse erkennt:
%Vor%Anmerkungen:
activate()
, deactivate()
, meta_changed()
auf. Sie müssen diese nicht einschließen, aber VLC wird Ihr Debug-Protokoll mit nutzlosen Nachrichten "function not found" füllen. playing-listener
, Erwartet VLC den playing_changed()
-Hook und ruft ihn gegebenenfalls auf. Der Code-Kommentar besagt, dass der Hook-Name "status_changed" lautet. Es lügt. vlc.playlist.status()
returns "gestoppt", „spielen "," pausiert "oder" unbekannt ". Ausführen:
Speichern Sie das Plugin in einer .lua-Datei und legen Sie es dann im Erweiterungsordner von VLC ab / a>: %APPDATA%\vlc\lua\extensions\
(Windows) oder ~/.local/share/vlc/lua/extensions/
(Linux)
Laden Sie es: Tools & gt; Plugins und Erweiterungen, Reload Erweiterungen (Neustart von VLC ist nicht notwendig)
activate()
wird vlc.msg
calls) anzuzeigen, öffnen Sie Tools & gt; Nachrichten ( Strg + M ), legen Sie die Ebene zum Debuggen und Filtern von "lua" Etwas tun, wenn ein neuer Gegenstand abgespielt wird:
input-listener
zu den Fähigkeiten des Plugins hinzu input_changed()
vlc.input.item()
erhalten die aktuelles Element (Name, URI, Metadaten usw.) vlc.net
, was bedeutet, dass Sie für Sockets programmieren. Sie wollen nicht für Steckdosen programmieren. Glücklicherweise ist die Erweiterung vlsub , mit VLC standardmäßig ausgeliefert hat Utility-Methoden für GET-Anfragen zu senden . Stehlen Sie diese. In diesem Beispiel sende ich nur ein fadenscheiniges GET:
%Vor% Mir sind Umleitungen oder das Lesen von Antworten egal, also ist get()
viel einfacher als die vlsub-Version.
Sie haben zwei Möglichkeiten: Schreiben Sie ein Lua-Modul (überprüfen Sie das MSN-Benachrichtigungs-Plugin für Beispielcode) oder schreiben Sie ein C-Plugin (ähnlich dem bereits gefundenen Scrobbler).
Ich würde den Lua-Weg vorschlagen, da es plattformübergreifend kompatibel ist und die Sprache viel einfacher ist. Darüber hinaus ist das Kompilieren von C-Plugins für VLC ein echtes Problem, es sei denn, Sie verwenden Linux oder OS X.
Python wird derzeit nur für Client-Anwendungen über VLC unterstützt, wir unterstützen jedoch nicht die interne Verwendung von VLC.