Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   LibVLC - VLC in Delphi nutzen (https://www.delphipraxis.net/150992-libvlc-vlc-delphi-nutzen.html)

chaosben 2. Mai 2010 17:42


LibVLC - VLC in Delphi nutzen
 
Hier (SVN) gibts ein aktuelles (VLC 1.0.5) Delphi-Binding für die VLC-Bibliothek LibVLC.dll. Außer den mediacontrol_* Funktionen, ist alles (hoffentlich zukunftstauglich) implementiert.
Im Repository gibts ein Beispiel für einen ganz einfachen Video-Player auf VLC-Basis.

Um das Beispiel (und eigene Programme) zum Laufen zu bringen, muss man sich nur doch die Datei libvlc.dll, libvlccore.dll sowie die Ordner plugins und locale von einer VLC-Installation oder aus dem VLC-Zip neben die .exe kopieren.

Für weitergehende Studien empfiehlt es sich, sich die Sourcen des VLC herunter zu laden und sich die Kommentare in den Header-Dateien unter "include/vlc/*.h" an zu sehen.

Viel Spass. :)

//edit: Falls jemand Probleme mit der Unit hat, packe er einfach eine Demo in den Anhang seiner Antwort in diesem Thread. (Was für ein Satz :))

@mkinzler: Bitte ... gern geschehen.

mkinzler 2. Mai 2010 17:46

Re: LibVLC - VLC in Delphi nutzen
 
Danke Benjamin :thumb:

SubData 2. Mai 2010 19:23

Re: LibVLC - VLC in Delphi nutzen
 
Grandios. Ich habe mich gerade 5 Minuten lang beim Anblick des Titels gefragt, warum zum Henker man für die VCL eine eigene Lib benötigt... :roll:

hathor 4. Mai 2010 12:12

Re: LibVLC - VLC in Delphi nutzen
 
Eine schöne Sache!

Aber:
Wie funktioniert die Positionsanzeige? Die Ausgabe bleibt bei Null stehen.

Delphi-Quellcode:
procedure TForm5.Timer1Timer(Sender: TObject);
begin
     if FLib.libvlc_media_player_is_playing(FPlayer, @FException) <> 0 then
        BEGIN
           tb_pos.position:= Round(FLib.libvlc_media_player_get_position(FPlayer, @FException));
           lb_pos1.caption:=IntToStr(Round(FLib.libvlc_media_player_get_position(FPlayer, @FException)));
        END;
end;

dominikkv 4. Mai 2010 12:24

Re: LibVLC - VLC in Delphi nutzen
 
Ohne, dass ich mir das Teil angeschaut habe: kann man darüber auch eigene Streams abspielen?

chaosben 4. Mai 2010 13:28

Re: LibVLC - VLC in Delphi nutzen
 
@hathor: Keine Ahnung warum die Position null bleibt. Über die Zeit (get_length, get_time, set_time) gehts. Ich hab das Beispiel im Repository mal angepasst.

@Dominik: Was meinst du mit Streams? TMemoryStream ... nein, das geht imho nicht. Aber alles was ein VLC-Player kann(Audio-/Videostreams aus dem Inet abspielen oder auch selbst erzeugen), kann man auch mit der LibVLC machen.

mkinzler 4. Mai 2010 13:47

Re: LibVLC - VLC in Delphi nutzen
 
Internetstreams sollten aber gehen

mimi 4. Mai 2010 14:35

Re: LibVLC - VLC in Delphi nutzen
 
Die Lib geht auch unter Lazarus, nach einigen kleineren Anpassungen. Nur ich kann im Moment noch nicht das Video zu einem Panel zuordnen:
Delphi-Quellcode:
w:=GDK_WINDOW_XWINDOW(PGtkWidget(PtrUInt(Form1.Handle))^.window);;
  FLib.libvlc_media_player_set_hwnd(FPlayer, @w, @FException);
Bei XINE ging das so wie es in der ersten Zeile steht. Verwende ich nun @ oder Pointer(w) geht es nicht.
Dann kommt folgende Meldung:
Zitat:

(project1:19077): Gdk-WARNING **: /build/buildd-gtk+2.0_2.12.12-1~lenny2-i386-2RfKoO/gtk+2.0-2.12.12/gdk/x11/gdkdrawable-x11.c:878 drawable is not a pixmap or window
Selbst wenn ich ein Panel nehme, es spielt anscheint keine rolle.

Edit01: VLC ist anscheint so schlau es dann in einem Externen Fenster da zustellen, was jedoch nicht beendet werden kann.
Edit02: Auch wenn ich libvlc_media_player_set_xwindow verwende gibt es den Fehler.

chaosben 4. Mai 2010 19:28

Re: LibVLC - VLC in Delphi nutzen
 
An die FreePascaler hab ich wieder nicht gedacht. Hab jetzt ein $Mode Delphi vorn angestellt. Und es funktioniert sogar. :)

Was deine anderen Probleme angeht: keine Ahnung was da schief läuft. Ich hab gerade mal schnell eine One-Panel-Test-App unter Lazarus zusammengeklickt .... es funktioniert.

mimi 5. Mai 2010 15:43

Re: LibVLC - VLC in Delphi nutzen
 
Verwendest du das unter Windows ? Unter Linux kann ich es keinem Panel zuordnen. Nur in einem Externen Fenster. Das VLC-Control(oder wie das hieß) lief, nach einigen Anpassungen. Ich habe auch noch eine ältere Version. Weil ich Debian verwende.

Das Problem ist: Die XID ist immer 0. In einem anderen Projekt kann ich sie so erzeugen. Wenn ich die HWND Methode verwende geht es auch nicht unter Linux. Ach ja: Für Linux muss die Unit angepasst werden. Z.B. die Unit Windows muss rauß.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz