Videowiedergabe AxcVLCPlugin2
Videowiedergabe AxcVLCPlugin2
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.
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.
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Videowiedergabe AxcVLCPlugin2
Mach doch den Aufruf AxcVLCPlugin2_1.OleServer.playlist.play; im OnActivate Event des Formulares.
Re: Videowiedergabe AxcVLCPlugin2
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!
> 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!
Re: Videowiedergabe AxcVLCPlugin2
AxcVLCPlugin2_1.OleServer.playlist.add( extractfilepath(application.exename)+URIParser.FilenameToURI('arbfeld.mp4'),'',vararrayof([':aspect-ratio=16:9']));
Gruß, Michael
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Videowiedergabe AxcVLCPlugin2
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.
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.
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Videowiedergabe AxcVLCPlugin2
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).
Re: Videowiedergabe AxcVLCPlugin2
>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!
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!
- af0815
- Lazarusforum e. V.
- Beiträge: 6209
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: Videowiedergabe AxcVLCPlugin2
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).
Re: Videowiedergabe AxcVLCPlugin2
Grundsätzlich habe ich noch dies gefunden: https://wiki.lazarus.freepascal.org/LazActiveX
Gruß, Michael
Re: Videowiedergabe AxcVLCPlugin2
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.
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.
Re: Videowiedergabe AxcVLCPlugin2
Danke. Habe ich schon alles durch. Auch abgewandelt. Es ist zum Davonlaufen.six1 hat geschrieben: ↑Fr 14. Jan 2022, 18:38Grundsätzlich habe ich noch dies gefunden: https://wiki.lazarus.freepascal.org/LazActiveX
---
Ich liebe Maschinencode!
---