MPlayer problemen in XE10.3
Ik had een MP3 player gemaakt in XE10.1, deze werkten perfect, maar nu ik deze omzet naar XE10.3 kom ik iets vreemds tegen.
De tijd van de Track uitlezen:
Code:
var
CurrentMin, CurrentSec, DurationMin, DurationSec: integer;
begin
if (MediaPlayer1.State = TMediaState.Playing) then
begin
TrackBar1.Tag := 1;
TrackBar1.Value := MediaPlayer1.CurrentTime;
TrackBar1.Tag := 0;
CurrentMin := MediaPlayer1.CurrentTime div 1000 div 60;
CurrentSec := MediaPlayer1.CurrentTime div 1000 mod 60;
DurationMin := MediaPlayer1.Duration div 1000 div 60;
DurationSec := MediaPlayer1.Duration div 1000 mod 60;
Label3.Text := Format('%2.2d:%2.2d', [CurrentMin, CurrentSec]) + ' / ' + Format('%2.2d:%2.2d', [DurationMin, DurationSec]);
end;
Dit gaf netjes de actuele play tijd en de lengte van de track in tijd.
Maar nu onder XE10.3 krijg ik hele vreemde waardes, deze zijn zelfs regelmatig negatief.
Ook als ik met een int64 of uint64 werk krijg ik regelmatig negatieve waardes, of heel erg grote waardes.
Dit heb ik ook getest:
var TEST: int64;
TEST := MediaPlayer1.CurrentTime;
Label7.Text := IntToStr( TEST ); //Geeft ook negatieve waardes
Label7.Text := VarToStr( TEST ); //Geeft ook negatieve waardes
TEST := MediaPlayer1.Duration;
Label7.Text := IntToStr( TEST ); //Geeft 112039 / 1543409 / 277591 / 1496348 /maar ook -1882409 (Afhankelijk van de gekozen track)
Label7.Text := MediaPlayer1.Duration.ToString; //Geeft 00:00:00
Label7.Text := MediaPlayer1.CurrentTime.ToString; //Geeft 00:00:00
Label7.Text := DateTimeToStr( MediaPlayer1.Duration.ToDateTime ); //Geeft 30-12-99 00:00:00
Label7.Text := TimeToStr( MediaPlayer1.Duration.ToDateTime ); //Geeft 00:00:00
Label7.Text := DateTimeToStr( MediaPlayer1.CurrentTime.ToDateTime ); //Geeft 30-12-99 00:00:00
Label7.Text := TimeToStr( MediaPlayer1.CurrentTime.ToDateTime ); //Geeft 00:00:00
Heel vreemd wat het werkte gewoon in XE10.1, en nu ineens niet meer.
Bookmarks