Hallo!
seit langer Zeit kämpfe ich mit dem VLC-AxtiveX-Plugin, das ich in Access einsetze (jeweils aktuelle 32-Bit-Versionen).
Beim Schließen eines Access-Formulars mit laufendem Player varabschiedet sich Access; man muss zuvor unbedingt den player manuell stoppen. Offenbar wird der player nicht automatisch beendet, wenn das Formular geschlossen wird, was doch eigentlich der Fall sein sollte...
Insbesondere die Snapshot-Funktion bereitet sehr große Schwierigkeiten, wie Internet-Suchen bestätigen...
Wenn ich ein Video abspiele und per VBA den Snapshot-Befehl an den Player sende, wird wohl "irgendwo" ein snapshot-Bild gespeichert, aber es ist nicht bekannt, wo genau.
Erst wenn ich zuvor in Access den Fileselect-Dialog aufrufe und irgendein gültiges Verzeichnis auswähle, werden die snapshot-Bilder in genau diesem Verzeichnis gespeichert, obwohl ich keine Code-Sequenz finden kann, die das macht.
Leider ist es nicht möglich, dem Plugin einen Ziel-Pfad und Dateinamen zu übergeben.
Leider ist es auch nicht möglich, den Dateinamen abzufragen (und z. B. einen Erfolgs-/Fehler-Status).
Die snapshot-Funktion benutzt intern u. a. die W32-Funktion "GetTempPath"; diese scheint nicht genau das zu tun, was sie soll und gibt "irgendein" Verzeichnis zurück (z. B. auch mal ein Onedrive-Verzeichnis, aber nie die Inhalte der Umgebungsvariablen TMP bzw. TEMP, wie von Microsoft dokumentiert/behauptet).
Außerdem wird die Datei von VLC fest mit der Endung "bmp" versehen, obwohl es eine PNG-Datei ist (das wiederum ist in der benutzen Windows-OLECTL-Funktion "OleCreatePictureIndirect" nicht vorgesehen) und enthält ein zusätzliches "C" am Anfang des Namens, was im Sourcecode (vlccontrol2.cpp) auch nicht nachvollziehbar ist.
VLC-interne Strukturen, in denen auch der Name der Datei gehalten wird, sind nach dem Aufruf von takeSnapshot nicht mehr erreichbar/vorhanden und können so nicht ausgewertet werden.
Somit ist es nur mit unverhältnismäßig großem Aufwand möglich,
* die snapshot-Ausgabe auf ein gewünschtes Verzeichnis zu lenken
* den Namen der frisch erzeugten snapshot-Datei zu ermitteln
Es wäre doch sehr zu wünschen, dem ActiveX-Control ein paar wenige zusätzliche Properties zu verpassen, etwa "GetLastSnapshotName", "SetSnapshotName", "SetSnapshotDir" - das würde die Arbeit ungemein erleichtern. Auch gäbe es in Windows einfache API-Funktionen, um z. B. JPG zu erzeugen (z. B. mit WIA); aber das kann man ja noch selbst mit VBA machen, sofern so einfache Informationen wie Pfad und Name der snapshot-Datei bekannt wären...
Starttime funktioniert auch nicht, außerdem gibt es weder Stoptime oder Duration...
Es ist sehr schade, dass das VLC-ActiveX-Control so unvollständig programmiert ist und offensichtlich auch kaum gepflegt wird. Wie kann man die VLC-Entwickler überzeugen, hier mal etwas genauer zu sein und ein paar wenige Änderungen/Erweiterungen einzubauen??? Es ist allein schon komisch, dass der Sourcecode für das Plugin nicht im VLC-Ast selbst liegt, sondern in einem bzw. sogar mehreren anderen Ästen.
Das Plugin sollte wirklich kritisch überprüft und an gewisse aktuelle Standards angepasst werden (allein schon die Benennung der Properties etc. erfolgt Mal in Groß-Kleinschreibung, mal nur in Kleinschreibung). Die Toolbar ist sehr spartanisch, nicht konfigurierbar, zeigt z. B. keine Zeit an, einfache Funktionen wie "10 s. zurück", "Wiedergabe-Geschwindigkeit" etc. fehlen... Andere player sind da schon etwas moderner, z. B. mit Vorschaubildern in der Zeitleiste (zumindest als Standalone-Player oder als Java/HTML-Player auf div. Websites).
Bitte, bitte, liebe Entwickler: schaut euch das mal an - es ist sicher nicht viel Code, der da geändert werden müsste. Ich selbst kann das leider nicht, weil mir Erfahrung und Entwicklungs-Umgebung fehlt.