2017-02-10 5 views
0

Ich nehme Audio mit einer Audio Unit auf und schreibe diese Daten dann in einen NSOutputStream, der Teil eines gebundenen Paares ist, das ich verwende, um diese Daten über HTTP zu senden. Mein Problem ist die Aufzeichnung der Callback-Funktion der Audiogeräte, und der Callback von NSOutputStream hasSpaceAvailable ist völlig unabhängig voneinander, so dass ich sehr schnell Pufferunterläufe erhalte. Gibt es eine Möglichkeit, diese beiden zu synchronisieren oder den Audioaufnahme-Rückruf direkt auf den NSOutputStream abzubilden?Synchronisieren von AudioUnit-Callback mit NSOutputStream

Antwort

0

Laut Apple DTS sollten Sie keine Netzwerk- oder andere Synchronisierung innerhalb des Real-Time-Thread-Audio-Unit-Rückrufs durchführen.

Sie müssen jedoch keine Daten direkt in Ihrem hasSpaceAvailable-Callback Ihres Netzwerkstreams posten. Sie können Daten nach dem Beenden der Callback-Funktion veröffentlichen, nachdem Sie wissen, dass Speicherplatz verfügbar ist und die Daten verfügbar sind. Sie können auch einige zusätzliche Audiodaten in einer kreisförmigen Warteschlange oder einem FIFO-Speicher auffüllen, so dass einige Daten normalerweise zum Senden verfügbar sind, um Netzwerkratenschwankungen und Latenzschwankungen abzudecken.

Verwandte Themen