Hab das jetzt mal getestet, und das gleiche Problem mit den Buttons taucht hier auch auf, allerdings ausschließlich mit MIDI-files.
Hab dann mal weiter rumgetestet, und kam auf folgendes:
Wenn man in einer Schleife sowas laufen läßt wie
Code:
WHILE FSOUND_IsPlaying()
count += 1
WEND
erhöht sich count bei mir ca. um 500000 pro Sekunde bei wav, mp3, etc.
Wenn man ähnlich dies hier nutzt:
Code:
WHILE FMUSIC_IsPlaying()
count += 1
WEND
oder auch
Code:
REPEAT
count += 1
UNTIL FMUSIC_IsPlaying()
mit irgendwelchen mod, dann erhöht sich count ebenfalls um ca. 500000 pro Sekunde.
Nutzt man eine der beiden letzten Möglichkeiten jedoch für MIDI-files, dann erhöht sich count nur um etwa 10 (!) pro Sekunde.
Der Aufruf FMUSIC_IsPlaying() bzw. FMUSIC_IsFinished() auf eine MIDI-file dauert einfach extrem lange, so dass es nicht ratsam ist, diesen in die Event-Hauptschleife zu legen, da dann die ganzen Fenster-Events extrem lange zum Abarbeiten brauchen, bzw. es zu einem Totalstau kommt, da mehr Events eingehen, als abgearbeitet werden können.
Ich habe das dann mal hier gepostet:
http://www.fmod.org/forum/viewtopic.php?t=2490
aber da gabs noch keine Antwort (allerdings steht sie eigentlich auch schon davor).
FMOD nutzt in Version 3.* DirectMusic für MIDI-files und ist von deren Antwortzeiten abhängig.
Lösung derzeit ist also, diese Schleife in einen seperaten Thread zu packen, der einfach eine globale Variable 'isplaying' setzt, welche in der echten Hauptschleife dann ausgewertet werden kann.
Mit FMOD EX, welches ja seinen eigenen MIDI-Player mitbrint, läuft das übrigens, da wird auch FMUSIC_*** mit MIDI-files 500000 mal pro Sekunde aufgerufen.