Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Mediaplayer.notify - praxis bei Endlosschleife (https://www.delphipraxis.net/53948-mediaplayer-notify-praxis-bei-endlosschleife.html)

C64-Flo 26. Sep 2005 01:00


Mediaplayer.notify - praxis bei Endlosschleife
 
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. :pale:


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

:wiejetzt:

Was habe ich übersehen?

Liegt es am Ende mal wieder an Bereichsüberschreitungen irgendwelcher Variablen in meinem Spaghetticode?! :gruebel:

padavan 26. Sep 2005 14:47

Re: Mediaplayer.notify - praxis bei Endlosschleife
 
Ohne jetzt "ganz genau" deinen Code angeschaut zu haben,
aber es scheint so, als wäre hin und wieder ein Titel nicht vorhanden.
Die beschriebene Meldung tritt ja z.B. dann auf, wenn du den Mediaplayer öffnen oder abspielen willst, aber kein Titel geladen ist.
Sporadisch bedeutet wahrscheinlich immer dann, wenn er beim Laden des Musiktitels ins "Leere" greift.

Zitat:

random(107)+1
wieviele sind denn da?

ist das +1 evtl. zu viel?

Gruß
Padavan


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:08 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz