WaveInGetPosition Überlauf !?
11. Feb 2008, 15:07
Hallo Leute,
momentan hab' ich ein Problem mit WaveInGetPosition.
Dort wird ja die aktuelle Position im Record MMTime zurückgegeben.
Leider haben die unseligen Designer des APIs ein paar bytes gespart
und die zurückgegebenen Werte haben allesamt "nur" die Datentypen Cardinal (=DWORD).
Wenn ich jetzt einmal annehme, dass ich mit 16kHz, mono aufnehme,
so läuft der Datentyp Cardinal aber leider, je nachdem wie der Audiotreiber/KMixer geschrieben ist
bzw. welches Zeitformat ich wähle, nach etwa 1.5 bis 10 Tagen über!!!
Gibt es eigentlich ein spezifiziertes Verhalten beim "Überlauf"? Die unterschiedlichen Zeitformate laufen ja nach unterschiedlicher Zeit über... Wenn "bytes" überläuft muss "hours" noch lang nicht übergelaufen sein. Wird z.B. mit dem Überlauf von "bytes" alles auf Null gesetzt, o.ä?
Da ich jedenfalls vorhabe, dass meine Applikation länger als 1.5 Tage laufen soll,
sehe ich momentan keine Möglichkeit WaveInGetPosition zu verwenden, aber ich würde die Funktion brauchen zur relativ exakten Synchronisation mit einem Wave-Out-Stream (Zur Zeit sehe ich noch keine andere Möglichkeit).
Ein Work-around für mich wäre, z.B. einmal am Tag das Sampling kurz zu unterbrechen und neu zu starten, sodass die Zeit zurückgesetzt wird (z.B. um 3 Uhr früh, in der Hoffnung, dass alle User brav im Bettchen schlafen), aber das wäre eigentlich ein Pfusch...
Hat jemand eine Idee????
Viele Grüße, Helmut
|