zapetlanie odtwarzanego dzwieku przy pomocy mediaplayer

0

Witam serdecznie napisalem budzik w delphi ale niestety nie potrafie go zapetlic. Dany dzwiek wybrany z dysku sie odtwarza ale odtwarza sie tylko raz ... nie wiem co zrobic oto fragment kodu:

 var
A, B, C : String;

begin
//przypisywanie czasu do zmiennych
A := FormatDateTime('hh', Time);
B := FormatDateTime('nn', Time);
C := FormatDateTime('ss', Time);

//porownywanie czasu wprowadzonego z obecnym
if ComboBox3.Text <> '' then
if ComboBox2.Text <> '' then
if ComboBox1.Text <> '' then
if ComboBox3.Text = C then begin
if ComboBox2.Text = B then begin
if ComboBox1.Text = A then begin

repeat
    with MediaPlayer1 do   //odtwarzanie dzwieku
      begin
        FileName := s;
        Open;
        Play;
      end
until(log=True)
log:true;

jest deklarowane na formcreate wiec domyslnie jest ustawiona na true niestety petla repeat nie dziala ... pomocy.

procedura wylaczenia dzwieku dziala na guziku i wyglada tak:

begin
      log:=false; // procedura wylaczajaca petle 
//inne nieistotne deklaracje sa pomiedzy 
with MediaPlayer1 do // procedura wylaczenia dzwieku
begin
  close;
end;
0

http://4programmers.net/Delphi/Repeat :>
Poza tym nie możesz puszczać play cały czas w pętli, bo sie program zawiesi bo będzie w kółko puszczał play (kiedy poprzedni play się jeszcze nie skończy !). To tak jakbyś nap*** po przycisku play na pilocie ;).

A do przerywania odtwarzania jest metoda Stop.

Aby odtwarzanie było zapętlone, musisz poczekać, aż się skończy i dopiero puścić od nowa. O skończeniu poinformuje cię zdarzenie OnNotify

I poczytaj helpa !!!

0

adf88 dziekuje :) zrobilem tak jak mi kazales uzylem komponenty Mediaplayer.Noify:

procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
  if MediaPlayer1.NotifyValue=nvSuccessful
     then MediaPlayer1.Play
     else MediaPlayer1.Rewind;
end;

Tamta petle usunalem i zamiast close dalem stop i wszsystko pieknie dziala ;) Dzieki browar dla ciebie ;)

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