MediaPlayer.Length ... znowu...

0

Nooo nie !
Ja już nie moge ! :-[
Siedze nad tym chyba z miesiąc, jak nie tak to inaczej...
DLACZEGO TO NIE DZIALA ?! [???]
HELP !

Co tu jest nie tak:

procedure TForm1.Button1Click(Sender: TObject);
var
minuty, sekundy, h, ms:Integer;
AllH, AllM, AllS, AllMS : integer;
I:Integer;
begin
AllH:=0; AllM:=0; AllS:=0; AllMS:=0;

MediaPlayer1.FileName:=ListBox1.Items[0];
MediaPlayer1.Open;

For I:=0 to ListBox1.Items.Count-1 do
begin
MediaPlayer1.FileName:=ListBox1.Items[i];
MediaPlayer1.TimeFormat:=tfMilliseconds;
ms := MediaPlayer1.Length-MediaPlayer1.EndPos;;
AllMS:=AllMS+ ms;
end;

    h := Allms div 3600000;
    Allms := Allms-(h * 3600000);
    minuty := Allms div 60000;
    Allms :=Allms-(minuty * 60000);
    sekundy := Allms div 1000;

    AllH:=AllH+ h;
    AllM:=AllM+ minuty;
    AllS:=AllS+ sekundy;

Caption:=inttostr(AllH)+' : '+ inttostr(allm)+ ' : '+inttostr(allS);
end;

Powinno byc 020 a mi wyswietla 022 .
Powinno byc 131 a mi wyswietla 121 .

Wszystkie programy do muzyki (WinAmp, WinAmp3, WindowsMediaPlayer)
wyswietlaja ten sam czas, tylko ten moj cholernik gubi, albo dodaje sobie kilka minut...

Dzieki za pomoc [browar]
Pozdrawia Cimak [cya]
...

//moderator przypomina o stosowaniu tagu i

0

nie jestem pewien, ale być może przechodzisz poza zakres integera..
spróbuj użyć zamiast integer np Longword, i napisz czy to działa..

[dop]
po chwili zastanowienia dochodzę do wniosku że to raczej nie jest to.. przecież jakbyś przepełnił zakres to miałbyś ujemne liczby.. ale sprawdź.. tak na wszelki wypadek..

0

procedure TForm1.Button1Click(Sender: TObject);
var
minuty, sekundy, h, ms:Integer;
AllH, AllM, AllS, AllMS : integer;
I:Integer;
begin
AllH:=0; AllM:=0; AllS:=0; AllMS:=0;

MediaPlayer1.FileName:=ListBox1.Items[0];
MediaPlayer1.Open;

For I:=0 to ListBox1.Items.Count-1 do
begin
MediaPlayer1.FileName:=ListBox1.Items[i];
MediaPlayer1.TimeFormat:=tfMilliseconds;
<font color="red">MediaPlayer1.Open;</span>
ms := MediaPlayer1.Length-MediaPlayer1.EndPos;;
AllMS:=AllMS+ ms;
end;

h := Allms div 3600000;
Allms := Allms-(h * 3600000);
minuty := Allms div 60000;
Allms :=Allms-(minuty * 60000);
sekundy := Allms div 1000;

AllH:=AllH+ h;
AllM:=AllM+ minuty;
AllS:=AllS+ sekundy;

Caption:=inttostr(AllH)+' : '+ inttostr(allm)+ ' : '+inttostr(allS);
end;

nie zaladowanie pliku w petli powodowalo ze ciagle sumowalo czas tylko pierwszego pliku w listboxie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1