Ja, aber wenn ich, angenommen, der Soundkarte 2 Buffer gäbe, die z.B. je 2 Sekunden lang wären, und der Audiotreiber würde mich möglichst gleich nachdem der erste gefüllt ist benachrichtigen, dass ich ihn zurücknehmen kann, dann hätte ich ja fast noch 2 Sekunden Zeit, ihm einen neuen Buffer zu geben, bevor der zweite gefüllt ist. Das müsste sich doch zeitlich ausgehen, oder?
Anbei jedenfalls die momentane Datei...
Ist aus einem ziemlich umfangreichen Kontext herausgerissen: Dazu zu sagen ist nämlich, dass es da noch eine
Unit MyMailbox gibt, die ich verwende, um strings zwischen Applikationen über ein SharedMemory herumzuschicken. Was MyWaveIO nun tut, ist folgendes:
1.) Es wartet, bis so ein string daherkommt (da sind die playfile daten hineingepackt),
2.) Nun startet er das Playback und möglichst zeitgleich die Aufnahme. Die aufgenommenen Samples werden als strings wieder mittels der
unit MyMailbox weggeschickt.
3.) Wenn das Playback aus ist, läuft die Aufnahme weiter (im header der Aufnahmedaten wird ein flag gesetzt, das anzeigt, ob gleichzeitig ein Playback war. Anhand dessen - und einer soundkartenspezifischen und raumspezifischen Korrektur von ein paar duzend Millisekunden - kann man das Echo des Playbacks in der Aufnahme herausschneiden, wenn man will).
4.) Wenn ein neuer playback string daherkommt, werden Aufnahme und Wiedergabe gestoppt weiter -> 2.)
Das ganze ist quasi für einen Dialog mit einem Spracherkenner.
Viele Grüße, Helmut