Videowiedergabe AxcVLCPlugin2

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

Moin zusammen,

ich habe AxcVLCPlugin2 in Verwendung und es funktioniert auch ganz gut.
Wo aber bekomme ich eine fundierte Beschreibung her?
Das Verwenden mit LazActiveXContainer ist verständlich und ich habe so etwas nachgebaut:

uses variants, URIParser;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
AxcVLCPlugin2_1.OleServer.playlist.add(URIParser.FilenameToURI(FileNameEdit1.FileName),'',vararrayof([':aspect-ratio=16:9']));
AxcVLCPlugin2_1.OleServer.playlist.play;
end;

Ich möchte aber ein Video nach dem Laden der Form gleich abspielen lassen und nicht erst manuell starten.

Danke für eure Hinweise.

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1014
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von fliegermichl »

Mach doch den Aufruf AxcVLCPlugin2_1.OleServer.playlist.play; im OnActivate Event des Formulares.

Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

Moin,

> Mach doch den Aufruf AxcVLCPlugin2_1.OleServer.playlist.play; im OnActivate Event des Formulares.

Ja, das ist mir klar. Aber wenn ich das Video so laden will, weil es im gleichen Verzeichnis liegt, wie die exe, dann passiert nichts:
...
AxcVLCPlugin2_1.OleServer.playlist.add(URIParser.FilenameToURI('arbfeld.mp4'),'',vararrayof([':aspect-ratio=16:9']));
AxcVLCPlugin2_1.OleServer.playlist.play;
...

Anfängerleben ist nicht leicht! :roll:

Benutzeravatar
six1
Beiträge: 565
Registriert: Do 1. Jul 2010, 19:01

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von six1 »

AxcVLCPlugin2_1.OleServer.playlist.add( extractfilepath(application.exename)+URIParser.FilenameToURI('arbfeld.mp4'),'',vararrayof([':aspect-ratio=16:9']));
Gruß, Michael

Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1014
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Winux (L 2.0.11 FPC 3.2)
CPU-Target: 32/64Bit
Wohnort: Echzell

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von fliegermichl »

six1 hat geschrieben:
Do 13. Jan 2022, 18:45
AxcVLCPlugin2_1.OleServer.playlist.add( extractfilepath(application.exename)+URIParser.FilenameToURI('arbfeld.mp4'),'',vararrayof([':aspect-ratio=16:9']));
Oder einfacher Application.Location

Benutzeravatar
six1
Beiträge: 565
Registriert: Do 1. Jul 2010, 19:01

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von six1 »

...oder so; wenn er Recht hat, hat er Recht! :lol:
Gruß, Michael

Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

Moin,

es gehen mir immer mehr Haare aus!
Ich habe alles durchprobiert:
extractfilepath(ParamStr(0))
extractfilepath(application.exename)
extractfilepath(application.location)

Im Edit-Feld als Kontrolle bekomme ich zwar den richtigen Pfad + Dateiname
Edit1.Text:=ExtractFilePath(ParamStr(0))+'Dateiname';
Aber sonst passiert nichts.

Vielleicht noch zur Ergänzung:
Aus Form1 wird Form2 und dann Form3 aufgerufen, in der das Video abgespielt werden soll.

Dank für eure Hinweise.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4909
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von af0815 »

Hast du schon mal daran gedacht ein Beispiel zu veröffentlichen, wo der Fehler gezeigt wird. Weil so stochert jeder im Nebel. Ja und es gibt doch auch ein paar Leute die Windows haben.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

>Hast du schon mal daran gedacht ein Beispiel zu veröffentlichen, wo der Fehler gezeigt wird. Weil so stochert jeder im Nebel. Ja und es gibt doch auch ein paar Leute die Windows haben.

Es wird ja eben KEIN Fehler angezeigt. Sonst könnte ich ihn nachvollziehen. Es passiert nichts. Hier der kurze Quellcode:

procedure TForm4.Button3Click(Sender: TObject);
begin
// Video abspielen
Edit1.Text:=ExtractFilePath(ParamStr(0))+'arbfeld.mp3'; // Nur zur Kontrolle
AxcVLCPlugin2_1.OleServer.playlist.add(extractfilepath(ParamStr(0))+URIParser.FilenameToURI('arbfeld.mp4'),'',vararrayof([':aspect-ratio=16:9']));
AxcVLCPlugin2_1.OleServer.playlist.play;
end;

Drück, Drück, Drück, Drück, und - NICHTS! Auch keine Error-Ausgabe!

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 4909
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Niederösterreich
Kontaktdaten:

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von af0815 »

DL2RPC hat geschrieben:
Fr 14. Jan 2022, 18:14
Drück, Drück, Drück, Drück, und - NICHTS! Auch keine Error-Ausgabe!
Wo erwartest du dir eine Errorausgabe. ActiveX-Server sollen keine Exceptions nach aussen geben, da die ausgeführten Konterxe sich unterscheiden können. Also wirft dir ein ActiveX Server normalerweise keine unmittelbare Exception.

Da muss man sich die Schnittstelle ansehen ob es einen Error/Log Ausgang gibt. Also ob der Server selbst ein Log oder eine Message zur Verfügung stellt. Oder auch die Einstellung verbose und dann kontrolliert man mal auf der Kommandozeile ob vom Server was zu sehen ist.

Die playlist gibt ja auch die Funktion 'parse' bekannt.
vlc.playlist.parse(options, timeout): (supported in vlc version ≥ 3.0.0) Parse the first media in the playlist. This fetches (local or network) art, meta data and/or tracks information. A timeout for parsing can be set in milliseconds or to indefinitely (0). Returns the parsed status.
Available options flags for parsing (which can be combined):

0 Parse media if it's a local file.
1 Parse media even if it's a network file.
2 Fetch meta and covert art using local resources.
4 Fetch meta and covert art using network resources.
8 Interact with the user. Set this flag in order to receive a callback when the input is asking for credentials.
Parsed status given as enumeration:

1 skipped
2 failed
3 timeout
4 done

Quelle: https://wiki.videolan.org/Documentation:WebPlugin
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
six1
Beiträge: 565
Registriert: Do 1. Jul 2010, 19:01

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von six1 »

Grundsätzlich habe ich noch dies gefunden: https://wiki.lazarus.freepascal.org/LazActiveX
Gruß, Michael

Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

Danke für den Hinweis, aber bei Verwendung eines TFileNameEdit zur Auswahl und Übernahme mittel

procedure TForm1.Button1Click(Sender: TObject);
var
actx: variant;
fn: widestring;
begin
actx := ActiveXContainer1.ComServer;
fn := UTF8Decode('file:///'+StringReplace(FileNameEdit1.FileName, '\', '/', [rfReplaceAll]));
actx.playlist.add(fn);
actx.playlist.play;
end;

funktioniert es. Und auch damit läuft das Video:

...
uses variants, URIParser;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
AxcVLCPlugin2_1.OleServer.playlist.add(URIParser.FilenameToURI(FileNameEdit1.FileName),'',vararrayof([':aspect-ratio=16:9']));
AxcVLCPlugin2_1.OleServer.playlist.play;
end;

Ich möchte aber ein Video nach dem Laden der Form gleich abspielen lassen und nicht erst manuell starten. Der Button ist nur zum Versuch.

Benutzeravatar
DL2RPC
Beiträge: 11
Registriert: Di 16. Nov 2021, 16:21

Re: Videowiedergabe AxcVLCPlugin2

Beitrag von DL2RPC »

six1 hat geschrieben:
Fr 14. Jan 2022, 18:38
Grundsätzlich habe ich noch dies gefunden: https://wiki.lazarus.freepascal.org/LazActiveX
Danke. Habe ich schon alles durch. Auch abgewandelt. Es ist zum Davonlaufen.

---
Ich liebe Maschinencode!
---

Antworten