Registriert seit: 21. Mai 2004
809 Beiträge
Delphi 7 Personal
|
Problem mit mciSendString()
18. Dez 2004, 00:23
Hallo,
ich bin ein kleines DelphiX Spiel am schreiben und möchte im Hintergrund Musik im Midiformat ablaufen lassen. Nun ist mir aufgefallen, dass das Laden der Midis beim "play" Befehl recht lange dauert, daher lade ich sie beim Programmstart und versehe sie mit einem "alias". Damit das Programm nicht angehalten wird und ich beim Start/Laden noch eine Animation anzeigen kann, habe ich das Laden in einen Thread ausgelagert. Nachdem das erste Lied geladen wurde "open", wird dieses auch gleich gestartet und dann die anderen geladen. Das klappt soweit auch alles. Nun kann ich jedoch im Hauptprogramm nicht mehr auf die "alias" der Midis zugreifen. Bspw. sollte nach dem Beenden eines Lieds per "notify"-Message das nächste gestartet werden. Die Message wird zwar ausgerufen, aber ich bekomme beim Aufrufen des mciSendString() Befehls immer eine Fehlermeldung. Nach ein paar Testst habe ich die Vermutung, dass es mit den "alias" zutun haben muss. Denn im Thread kann ich alles machen, auch die Lieder stoppen. Im Hauptprogramm aber nichts, es kommt immer der Fehler. Nur wenn ich eine Mididatei direkt, also nicht deren "alias" angeben, geht alles Fehlerfrei. Woran kann das liegen und was kann man da machen?
MfG Pr0g
|