Einzelnen Beitrag anzeigen

C64-Flo

Registriert seit: 11. Nov 2003
91 Beiträge
 
#1

Mediaplayer.notify - praxis bei Endlosschleife

  Alt 26. Sep 2005, 01:00
Hi, ich bins mal wieder!

Ich habe folgendes Problem:

Ein Mediaplayer-Plugin soll aus einer Auswahl von knapp 100 mp3/wmaund wav-files eine Endlos-Musikuntermalung liefern.

Meine momentane Lösung sieht vor, beim notify des entsprechenden mediaplayers eine Musikdatei in den Player zu laden:

Delphi-Quellcode:
procedure TForm3.MediaPlayer6Notify(Sender: TObject);
begin
musikwahl:=random(107)+1;

case musikwahl of
               27,28:form3.mediaplayer6.FileName:=ExtractFilePath(ParamStr(0)) +'data\musik\battle'+inttostr(musikwahl)+'.wav';
               29,43,51,57,64,99:form3.mediaplayer6.FileName:=ExtractFilePath(ParamStr(0)) +'data\musik\battle'+inttostr(musikwahl)+'.wma';
               1..26,30..42,44..50,52..56,58..63,65..98:form3.mediaplayer6.FileName:=ExtractFilePath(ParamStr(0)) +'data\musik\battle'+inttostr(musikwahl)+'.mp3';
              

form3.mediaplayer6.Open;
form3med6:=true;
...und den player dann an geeigneten Stellen wieder zu starten.(ZB bei Formx.mousemove)

Delphi-Quellcode:
if form3med6=true then begin
                       form3.MediaPlayer6.play;
                       form3.MediaPlayer6.notify:=true;
                       form3med6:=false;
                       form2.musiklabl;
                       end;
warum das getrickse mit der form3med6-boolean?
Nun, seltsamerweise hing sich das Programm sporadisch in Endlosschleifen auf, wenn ich das "Mediaplayer6.play" in die notify-procedure packte.


Soweit, sogut -
ansonsten müsste ja alles so funktionieren?
ABER
sporadisch (oh wie ich es liebe ) hängt sich das Programm mit der Fehlermeldung "No MCI Device Open" bzw "Fehler beim starten von MCI" auf.



Was habe ich übersehen?

Liegt es am Ende mal wieder an Bereichsüberschreitungen irgendwelcher Variablen in meinem Spaghetticode?!
  Mit Zitat antworten Zitat