Echtzeit-Audioverarbeitung ohne Ausgabe

8

Ich schaue auf dieses Beispiel Ссылка

und ich möchte meine Ausgabe ausschalten. Ich versuche zu ändern: kAudioSessionCategory_PlayAndRecord zu kAudioSessionCategory_RecordAudio aber das funktioniert nicht. Ich versuche auch loszuwerden:

%Vor%

Weil ich Sound vom Mikrofon bekommen will, aber nicht spiele. Aber egal was ich mache, wenn mein Sound zur renderCallback-Methode kommt gibt es einen -50 Fehler. Wenn Audio automatisch bei der Ausgabe abgespielt wird, funktioniert alles gut ...

Aktualisierung mit Code:

%Vor%

Und von meinem VC aus anrufen:

%Vor%     
Kuba 21.03.2013, 15:18
quelle

3 Antworten

11

Wenn Sie nur aufnehmen wollen, keine Wiedergabe, kommentieren Sie einfach die Zeile, die renderCallback setzt:

%Vor%

Aktualisieren nach dem Code:

Wie ich vermutet habe, fehlt Ihnen der eingehende Rückruf. Fügen Sie diese Zeilen hinzu:

%Vor%

Jetzt in Ihrem recordingCallback:

%Vor%

Übrigens weise ich meinen eigenen Puffer zu, anstatt den von AudioUnit bereitgestellten zu verwenden. Möglicherweise möchten Sie diese Teile ändern, wenn Sie den zugewiesenen AudioUnit-Puffer verwenden möchten.

Aktualisierung:

Wie reserviere ich einen eigenen Puffer:

%Vor%

Wenn Sie dies tun, teilen Sie AudioUnit mit, keine Puffer zuzuweisen:

%Vor%

Sie müssen CoreAudio-Hilfsklassen

hinzufügen >     
Mar0ux 25.03.2013, 08:46
quelle
1

Danke für die Antwort von @ Mar0ux. Wer hier nach einem kompletten Beispielcode sucht, kann dies hier einsehen:

Ссылка

    
x.y 03.01.2014 19:52
quelle
0

Ich mache eine ähnliche App, die mit demselben Code arbeitet, und habe festgestellt, dass Sie die Wiedergabe beenden können, indem Sie die Aufzählung kAudioSessionCategory_PlayAndRecord in RecordAudio

ändern %Vor%

Dies hat die Rückkopplung zwischen Mikrofon und Lautsprecher auf meiner Hardware gestoppt.

    
Kyle Griffith 03.11.2015 06:00
quelle

Tags und Links