Bei
fb kommt beim Installisieren eine Fehler Meldung.
Ich habe wie gesagt alle ausprobiert, nur xv geht einiger maßen. Ich habe einige neue hinweise aus de xineplayer.cpp Datei ausprobiert. Damit geht das schon recht gut, allerdings hängt sich das Programm immer noch auf, aber ich kann es noch normal beenden.
Ich bin also auf den richtigen weg:
Delphi-Quellcode:
procedure TxineEngine.Re;
begin
myXStream.SetStream(myXine, myAudPlug.AoDriver, myVidPlug.VoDriver);
queue := xine_event_new_queue (myXStream.GetStream);
xine_event_create_listener_thread (queue, @XineEventCB, @UserData);
end;
das führe ich jetzt immer vor jedem XINE_OPen aus,
Nach XINE_Open kommt das hier:
Delphi-Quellcode:
xine_open(myXStream.GetStream,PChar(filename));
xine_gui_send_vo_data(myXStream.GetStream, XINE_GUI_SEND_VIDEOWIN_VISIBLE, Pointer(1));
// Das waren die hinweise die ich in der xineplayer.cpp gefunden habe.
// movie_saturation habe ich als const defniert. Die werte stammen auch aus der xineplayer.cpp
xine_set_param (myXStream.GetStream, XINE_PARAM_VO_SATURATION, movie_saturation);
xine_set_param (myXStream.GetStream, XINE_PARAM_VO_BRIGHTNESS, movie_brightness);
xine_set_param (myXStream.GetStream, XINE_PARAM_VO_CONTRAST, movie_contrast);
xine_set_param (myXStream.GetStream, XINE_PARAM_VO_HUE, movie_hue);
Allerdings geht es immer noch nicht richtig. Irgendwas muss ich übersehen.
Ich hänge mal für euch alle Dateien ran die ich habe. Evlt. findet ihr die Fehler.
Das Projekt ist nur für Lazarus und läuft auch nur auf Linux.
Das Test Projekt nutzt Komponenten die ich geschrieben habe, die ich aber noch nicht frei geben möchte.
Es sind einfache Datei Verwaltung Komponenten. Die mir in Lazarus gefählt haben.
ihr solltet neuXinePL.lpk zuerst installieren.
Ich hoffe ihr habt wegen der libc keine Probleme das hat bei mir am Anfang Probleme gemacht.
Es währe toll wenn sich das jemand von euch mal anschauen könntet und evlt. auch den Fehler findet und natürlich eine Lösung.
wie schon gesagt:
DAS PROJEKT IST NUR FÜR LINUX weil es die XINE-LIb nur für Linux gibt im Moment.
Und somit läuft das Projekt auch nur unter Lazarus. ab Welche Version weiß ich leider nicht.
Das Projekt ist auch erstmal nur ein Test Projekt.
kann sein das ihr die Beispiel Projekt nicht kompilieren könnt ! aber ihr könnt es als Vorlage nutzen um ein eigens zu erstellen.
Im Wesenlichen müsst ihr nach dem Installieren ein neuen Register finden mit den namen Pluto.
Alle Komponenten die da drin sind, solltet ihr auf das From plazieren. und die XINEEngine1 Komponente sollte ihr mit den drei anderen verbinden.
Dieser code reicht dann zum abspielen:
Delphi-Quellcode:
procedure TForm1.PLFileListBox1DblClick(Sender: TObject);
var
str:String;
begin
str:=PLFileListBox1.CurrDir + PLFileListBox1.Items[PLFileListBox1.ItemIndex];
if (Assigned(xineEngine1)) and (xineEngine1.init) then begin
// Hat anscheind keine Auswirkung auf den Fehler. Egal in welche Reinfolge oder was davon Aktiv ist.
xineEngine1.Stop;
// xineEngine1.Close;
end
else // Einmal muss die Engine Installisiert werden dabei wird init auf True gestellt
xineEngine1.Initialize;
xineEngine1.Re;
xineEngine1.Open(PChar(str));
xineEngine1.Play;
end;
PLFileListBox1 ist jetzt meine Komponente die nicht dabei ist. Str ist also der Datei namen.
Das ist dann euch überlassen wie ihr das defniert. Der code dient auch nur als Muster.
Viel Spaß beim Rumspielen.
PS:
Ich möchte nochmal darauf hinweise das, dieses Projekt eigentlich von Kylix kommt. Und ich es nur angepasst habe für Lazarus,