2 Stimmen

Beispiel für das Speichern von Audio aus RemoteIO?

Ich habe mich umgesehen, aber keine guten Beispiele oder Tutorials zum Speichern von Audio aus einer RemoteIO Audio Unit gefunden.

Meine Einstellung: Ich verwende die MusicPlayer API und habe mehrere AUSampler -> MixerUnit -> RemoteIO

Die Audiowiedergabe funktioniert hervorragend. Ich würde gerne eine Funktion hinzufügen, um die Audioausgabe in einer Datei zu speichern. Würde ich dies in einem Render-Callback auf die RemoteIO tun?

Für Tipps oder Hinweise auf Beispielcode bin ich dankbar!

1voto

hotpaw2 Punkte 69093

Aufgrund der engen Latenzanforderungen von Audio-Unit-Callbacks sollte man innerhalb des RemoteIO-Callbacks keinen synchronen Dateizugriff (oder andere Aufrufe, die potenziell blockieren, Speicherverwaltung oder OS-Sperrvorgänge beinhalten könnten) durchführen. Stattdessen kopiert man die Audiodaten einfach in einen anderen Puffer (z.B. einen größeren Ringspeicher) und setzt einen Status, der angibt, wie viele Daten kopiert wurden. Dann, in einem anderen Thread, wenn die Datenmenge ausreichend ist, schreiben Sie den Inhalt dieses Puffers in eine Datei. Dies könnte eine rohe PCM-Datei sein, die später von AVAssetReader/Writer in einen anderen Audiodateityp konvertiert werden kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X