Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

Re: reNamed: Umrechnungsprobleme bei Zeitanzeige von Soundda

  Alt 29. Okt 2003, 10:51
Der Teil mit dem hochrechnen der Minuten/Stunden stimmt so, ist jedenfalls kein fehler drin.
Ich lösse das jedoch so, falls mal Sekunden grosser als 60 ist:
Delphi-Quellcode:
If Sekunden >= 60 Then Begin
  Inc(Minuten, Sekunden div 60);
  Sekunden := Sekunden mod 60;
End;
If Minuten >= 60 Then Begin
  Inc(Stunden, Minuten div 60);
  Minuten := Minuten mod 60;
End;
Inc(X, Y); entspricht X := X + Y;
So kann man auch mal grössere Werte für Sekunden behandeln
(z.B.: 400 Sekunden = 6 Minuten, 40 Sekunden)

BeiSekunden := Mediaplayer1.Position musst du aber aufpassen.
Mediaplayer1.Position wird nach dem in Mediaplayer1.TimeFormat festgelegten Format codiert.

TimeFormat/Position kann folgende Formate verwenden (siehe OH TMPTimeFormats):
Delphi-Quellcode:
{TimeFormat = }   {Position = }
tfMilliseconds Millisekunden: Integer
tfHMS Stunden, Minuten, Sekunden: Byte ($xxSSMMHH = Integer)
tfMSF Minuten, Sekunden, Frames: Byte ($xxFFSSMM = Integer)
tfFrames Frames: Integer
tfSMPTE24 Stunden, Minuten, Sekunden, Frames: Byte ($FFSSMMHH = Integer)
tfSMPTE25 {wie tfSMPTE24}
tfSMPTE30 {wie tfSMPTE24}
tfSMPTE30Drop {wie tfSMPTE24}
tfTMSF Spuren, Minuten, Sekunden, Frames: Byte ($FFSSMMTT = Integer)

{ F = Frames            }
{ S = Sekunden          }
{ M = Minuten           }
{ H = Strunden          }
{ T = Spuren            }
{ Frames = Einzelbilder }

Versuch mal nach dem laden der Mediendatei TimeFormat zu setzen:MediaPlayer1.TimeFormat := tfMilliseconds; Und die Sekunden so zu berechnen:
Delphi-Quellcode:
Sekunden := Mediaplayer1.Position div 1000;
{oder}
Sekunden := Round(Mediaplayer1.Position / 1000);


Mediaplayer1.Position := Sekunden * 1000;
$2B or not $2B
  Mit Zitat antworten Zitat