AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi WaveIn-Problem bei grossen Buffern (Waveform Audio API)
Thema durchsuchen
Ansicht
Themen-Optionen

WaveIn-Problem bei grossen Buffern (Waveform Audio API)

Ein Thema von HHick123 · begonnen am 4. Feb 2008 · letzter Beitrag vom 31. Mai 2008
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz