Einzelnen Beitrag anzeigen

HHick123

Registriert seit: 23. Jul 2007
73 Beiträge
 
#3

Re: WaveIn-Problem bei grossen Buffern (Waveform Audio API)

  Alt 5. Feb 2008, 20:24
Hallo elliott,

Zitat:
Leider hab ich nicht die Zeit deinen ganzen Quelltext durchzusehen.
Ich geb' zu, der war eigentlich ein bischen zu lang, um ihn zu posten - sorry...

Interessant am Tutorial finde ich, dass das andere Funktionen verwendet, um
den Speicher für die Buffer zu reservieren. Ich verwende bis jetzt GlobalAlloc und GlobalLock,
die noch aus 16bit-Windows-Zeiten stammen. Vielleicht ist hier ein Bug begraben,
werd' mal etwas nachgraben...

Zitat:
Dort wird zwar nur auf das Abspielen eingegangen, aber naja...
Ja. Das Abspielen funktioniert bei mir aber eigentlich eh problemlos.

Aus den aufgezeichneten Daten fehlen aber zwischen den Buffern unter Umständen
Zeitspannen (fängt an, wenn ein Playback beginnt),
obwohl ich im API-Trace nichts auffälliges erkennen kann...

Zitat:
Zum Abspielen kannst und solltest du mehr als 2 Puffer benutzen!
In dem Tutorial ist von 20 die Rede!!! Damit vermeidest du Lücken...
Vielleicht werd' ich wohl doch nicht herumkommen, den Fall mit mehreren Buffern durchzudenken.
Bis jetzt hab' ich es gescheut, weil es die Synchronisation zwischen Aufnahme und Wiedergabe eventuell verkompliziert (siehe unten). Ich versteh' aber nicht, warum es nicht mit 2 Buffern gehen soll:
Wenn ich den Buffer z.B. 4 Sekunden lang mache, dann wird es der Treiber doch bitte
hoffentlich schaffen, innerhalb von 8 Sekunden einen neuen Aufnahmebuffer von mir rechtzeitig anzufordern.... (eigentlich tut er das ja auch, aber er macht trotzdem "Denkpausen" zwischen den Buffern). Komischerweise beginnen, wenn dieser Effekt auftritt, dann auch die Samplingbuffer-Daten mit jeweils 6 Samples Nullen.

Zitat:
Ich weiss jetzt nicht genau was du vor hast weil du WaveOut und WaveIn benutzt.
Willst du das Aufgenommene gleich wieder abspielen,
Nein, eigentlich nicht, eher umgekehrt: Ich möchte permanent aufnehmen und gelegentlich
etwas abspielen, wobei mir die Synchronisation wichtig ist, denn dass Abgespielte
(welches über den Luftweg wieder ans Mikro kommt) möchte
ich aus dem aufgenommenen Samplestrom wieder herausschneiden, es soll
nämlich nicht analysiert werden!

Zitat:
Nachtrag:
Deine Puffergrösse muss mit der Samplerate in Einklang sein!
am Besten Puffergrösse = Samplerate *8 *x
Warum *8 *x ?

Viele Grüße, Helmut
  Mit Zitat antworten Zitat