Klasse von CWinThread ableiten, als eigenen Thread laufen lassen und darin WaveOutWrite (WAVE API) aufrufen...
-
Hallo,
der Titel sagst ja schon fast. Hintergrund ist, dass ich UDP-Daten via CAsyncSocket erhalte, die in weitere Buffer umpacke und anschließend an die Soundkarte schicken will.
Soweit so gut. Problem ist, nur dass alles momentan in meiner Hauptklasse (Dlg) abläuft und die Wiedergabe aussetzt (z.b. beim Drücken der Mousetaste).
Ich arbeite mit 4 Audiobuffern und starte die Wiedergabe mit Buffer1 sobald Buffer1, Buffer2 und Buffer3 gefüllt wurden. Es liegen also immer 2 gefüllte Buffer für die Wiedergabe bereit. Daran sollte es nicht liegen, dass die Wiedergabe immer stottert.
Ich dachte mir nun, ich leite eine neue Klasse von CWinThread und starte den Thread via AfxBeginThread(RUNTIME_CLASS *pClass) und kapsel darin die Wiedergabe. Leider habe ich gerade keine Ahnung wie ich das am Besten anstelle.
Ich habe CodeProject, GoogleGroups und Konsorten durchstöbert, aber leider ncihts gefunden, dass mir
den Zugang zu dieser Thematik erleichtert. Via ProcessViewer kann ich aber kontrollieren, dass mein neuer Thread gestartet wurde.Jetzt müsste ich quasi nur wissen, wie ich die Buffer an den Thread übergebe und in diesem abspiele. Das Ganze soll eine Art Audioplayer für lokale Audiostreams werden. Vielleicht hat jemand sowas auch schon mal gemacht und kann mir mit Codeschnipseln weiterhelfen.
Danke für jede Hilfe
Gruß
Alexander
-
Oder ist es zu kompliziert beschrieben?
Danke und Gruß
Alexander