Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#10

Re: ms in sekunden und minuten stunden umrechen ?

  Alt 16. Apr 2005, 21:25
ich habe mich verschrieben oben ich meinte 3000 das hat was mit fmod zu tuen:
Die FMusic funktion spical midi sind zu langsam:

Zitat:
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.
aus dem www.fmod.de forum
(es gibt dort leider keinen link bei der deutschen version...)

@3_of_8
das der Timer ungeanu ist weiß ich, aber ich dachte, es reicht aus wenn ich den von delphi nehme, weil ich wollte ja nur eine zeit anzeige schreiben(die jetzt so funktioniert wie ich sie haben wollte)
(der richtig code ist mein zweiter beitrag)

@SirThornberry
soll das heißen es mach keinen sin einen wert von <= ca 20 zu machen ?
das wuste ich noch nicht. ich dachte 1 ms heißt das windows den timer jede ms aufruft....
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat