Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Problem mit dem TMediaPlayer (https://www.delphipraxis.net/140251-problem-mit-dem-tmediaplayer.html)

klose010 14. Sep 2009 16:55


Problem mit dem TMediaPlayer
 
Ich hab folgendes Problem:
Ich hab ein Video in den TMediaplayer geladen, und lass es auf einen TAnimate abspielen. Ich habe eine Trackbar, mit der ich die Position vom Video anzeigen und verändern kann:

Delphi-Quellcode:
procedure TForm1.ZeitleisteChange(Sender: TObject);
var i : integer;
begin
i := zeitleiste.position;
mediaplayer1.Position := round(i);
end;
Wenn ich jetzt die Zeitleiste verändere, dann beleibt das Video stehen. Wenn ich dann beim TMediaPlayer auf Play klicke, fängt das Video wieder von vorne an. Und wenn ich es mit dem Befehl Mediaplayer1.Play wieder starte kommt dieser Error:

Zitat:

Im Projekt Project1.exe ist eine Exception der Klasse EInvalidOp aufgetreten. Meldung: 'Fehler bei Fließkommaoperation'. Prozeß wurde angehalten. Fortfahren mit Einzelschritt oder Start.
Warum ist das so, und wie kann ich das ändern?

Klaus01 14. Sep 2009 18:42

Re: Problem mit dem TMediaPlayer
 
Das das Problem daran liegt kann ich nicht sagen.

Delphi-Quellcode:
mediaplayer1.Position := round(i);
Aber einen Integer zu runden macht meines Erachtens wenig Sinn.

Grüße
Klaus

klose010 15. Sep 2009 13:48

Re: Problem mit dem TMediaPlayer
 
Ich weiß, dass ein Integer keine Kommas hat. Aber wenn ich das nicht mache kommt immer der Fehler den ich oben gezeigt habe. Auch ohne das ich Play mache. Ich sollte vielleicht dazusagen, dass es nur bei einem Video den Fehler gibt. Die Videos sind ca. 2 St. lang aber mit Lieder(3 mins.) funzt es einwandfrei.

Klaus01 15. Sep 2009 14:06

Re: Problem mit dem TMediaPlayer
 
Hallo,

ich werde mir das heute abend mal anschauen.
Hier habe ich kein 2 Stundenvideo um das nachzustellen.

Grüße
Klaus

Klaus01 15. Sep 2009 21:42

Re: Problem mit dem TMediaPlayer
 
Sodele,

ein 2 Stunden Video habe ich nicht aber ich habe mir für 2 Stunden mp3 Files zusammenkopiert.

Wenn Du die Trackbarposition permanent der Videoposition anpasst wird
immer ein onChange Ereignis der Trackbar ausgelöst.

Du hast leider nicht geschrieben wie Du die Trackbar updatetest.

Bei meinem Testprojekt sieht das so aus:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
   mediaplayer1.FileName:='j:\data2\mp3\bigFile.mp3';
   mediaplayer1.Open;
   trackbar1.Max:=mediaplayer1.Length;
   mediaplayer1.Play;
   Timer1.Enabled:=true;
end;


Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Trackbar1.OnChange := nil;              // verhindert das Auslösen des onChange Ereignisses
  trackbar1.position := mediaplayer1.position;
  Trackbar1.OnChange := Trackbar1Change; // onChange Ereignis kann wieder ausgelöst werden
end;
Delphi-Quellcode:
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Timer1.Enabled:=false;
  mediaplayer1.Pause;
  mediaplayer1.Position := trackbar1.Position;;
  mediaplayer1.Play;
  Timer1.Enabled := true;
end;
Dein Problem habe ich nicht nachstellen können.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr.

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