Ich verwende PortAudio, um Mehrkanal-Audiodaten aufzuzeichnen. Ich möchte die Daten von jedem Kanal als separate Datei speichern. Daher muss ich irgendwo im Programm File IO arbeiten. Da das Dokument empfiehlt keine IO-Arbeit in der Callback-Funktion zu tun, da sie in einer hohen Frequenz aufgerufen werden.Wo soll ich Datei-IO-Auslastung in PortAudio durchführen, wenn nicht in den Callbacks
Dann, was ist der richtige Weg, um die IO-Arbeit durchzuführen? Soll ich einen anderen Thread starten?
Vielen Dank im Voraus für Ihre Zeit beim Lesen meiner Post! Diese
Danke für die Antwort. Ich habe etwas gefunden, das den gleichen Geist teilt wie du. Es gibt eine Datenstruktur namens RingBuffer, die das Schreiben und Lesen mit mehreren Threads parallel behandelt. In der Rückruffunktion sollte ich in den Ringpuffer schreiben, während ich einen separaten Thread benutze, um den Ringpuffer zu lesen und in eine Datei zu schreiben. – Foreverniu
Ah ja! Ringpuffer sind der Weg zu gehen. Ich würde die zirkulären Puffer in Bulks lesen ... also wenn Sie 2048 Sample-Size-Array hätten, würde ich es alle 1024 Samples oder so lesen. So verschwenden Sie keine Zeit mit dem Lesen/Aufnehmen jeder Probe –