AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte LibVLC - VLC in Delphi nutzen

LibVLC - VLC in Delphi nutzen

Ein Thema von chaosben · begonnen am 2. Mai 2010 · letzter Beitrag vom 2. Okt 2019
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von chaosben
chaosben
Registriert seit: 27. Apr 2005
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.
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
 
mkinzler

 
Delphi 11 Alexandria
 
#2
  Alt 2. Mai 2010, 18:46
Danke Benjamin
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SubData
SubData

 
Delphi 11 Alexandria
 
#3
  Alt 2. Mai 2010, 20:23
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...
Ronny
  Mit Zitat antworten Zitat
hathor
 
#4
  Alt 4. Mai 2010, 13:12
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;
  Mit Zitat antworten Zitat
dominikkv

 
Delphi 2007 Professional
 
#5
  Alt 4. Mai 2010, 13:24
Ohne, dass ich mir das Teil angeschaut habe: kann man darüber auch eigene Streams abspielen?
Dominik
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

 
Delphi XE2 Professional
 
#6
  Alt 4. Mai 2010, 14:28
@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.
Benjamin Schwarze
  Mit Zitat antworten Zitat
mkinzler

 
Delphi 11 Alexandria
 
#7
  Alt 4. Mai 2010, 14:47
Internetstreams sollten aber gehen
Markus Kinzler
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#8
  Alt 4. Mai 2010, 15:35
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.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

 
Delphi XE2 Professional
 
#9
  Alt 4. Mai 2010, 20:28
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.
Benjamin Schwarze
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#10
  Alt 5. Mai 2010, 16:43
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ß.
Michael Springwald
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Deutsches Lazarusforum &bull; Thema anzeigen - avi-Clip auf einem Panel abspielen This thread Refback 28. Jan 2011 06:29

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:29 Uhr.
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