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?!