RemoteIO-Wiedergabe des ios audio unit während der Aufnahme

Es wurde mir in Rechnung gestellt, VOIP in ein Spiel einzufügen (plattformübergreifend, daher kann ich das Apple-Gamekit nicht dazu verwenden).

Seit 3 ​​oder 4 Tagen versuche ich, Audioeinheit und RemoteIO in den Griff zu bekommen ... Ich habe Dutzende Beispiele und dergleichen übersehen, aber jedes Mal wendet es nur einen einfachen Algorithmus auf das Eingabe-PCM an und spielt es ab wieder auf den lautsprecher. Laut Apples Dokumentation sollten wir für VOIP kAudioSessionCategory_PlayAndRecord verwenden.

UInt32 audioCategory = kAudioSessionCategory_PlayAndRecord;

        status = AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, 
                                         sizeof(audioCategory), 
                                         &audioCategory);
        XThrowIfError(status, "couldn't set audio category");

1) Aber es scheint mir, dass playAndRecord immer das spielt, was vom Mikrofon kommt (oder genauer gesagt den PerformThru-Rückruf) //aurioTouch), Liege ich falsch ?

Ich habe den einfachsten Rückruf, mache nichts als AURender

static OSStatus PerformThru(
                            void                        *inRefCon, 
                            AudioUnitRenderActionFlags  *ioActionFlags, 
                            const AudioTimeStamp        *inTimeStamp, 
                            UInt32                      inBusNumber, 
                            UInt32                      inNumberFrames, 
                            AudioBufferList             *ioData)
{
OSStatus err = AudioUnitRender(THIS->rioUnit, ioActionFlags, inTimeStamp, 1, inNumberFrames, ioData);
    if (err) 
       printf("PerformThru: error %d\n", (int)err);
    return err
}

Von diesem Rückruf aus habe ich vor, Daten an den Peer zu senden (natürlich nicht direkt, aber Daten werden von ihm kommen) ...

Ich verstehe nicht, wie ich eine andere Ausgabe als die Eingabe wiedergeben kann, außer vielleicht mit 2 Einheiten, einer Aufnahme, einer Wiedergabe, aber es scheint nicht das zu sein, was Apple beabsichtigt hat (immer noch gemäß der Dokumentation).

Und natürlich kann ich keine Dokumentation finden, Audio-Einheit ist immer noch ziemlich un-dokumentiert ...

Hat jemand eine Idee, wie das am besten geht?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage