6 Stimmen

Was ist der Unterschied zwischen Render-Callback-Funktion und Eingabe-Callback-Funktion?

Auch wenn ich im Internet gesucht habe, kann ich immer noch keine Antwort auf meine Frage finden. Ich sehe, dass es zwei Arten von Callback-Funktionen gibt, und im Beschreiben von Audioeinheiten-Eigenschaften wird eine als Eingabe-Callback-Funktion und die andere als Render-Callback-Funktion bezeichnet.

@constant       kAudioOutputUnitProperty_SetInputCallback
@discussion         Scope: Global
                    Value Type: AURenderCallbackStruct
                    Access: read/write

@constant       kAudioUnitProperty_SetRenderCallback
                    Scope:          Input
                    Value Type:     AURenderCallbackStruct
                    Access:         Write

Ich weiß nicht, was der Unterschied zwischen diesen beiden ist und wann oder welchen ich auswählen soll. Wenn jemand darüber Bescheid weiß, bitte hilf mir.

Vielleicht ist es keine schwierige Frage, aber ich kann sie seit ein paar Tagen nicht lösen. Vielen Dank.

5voto

cvu Punkte 492

kAudioOutputUnitProperty_SetInputCallback wird verwendet, wenn das Mikrofon Daten aufnimmt. Dadurch können Sie festlegen, was Sie mit diesen Daten tun möchten. In diesem Rückruf schreiben Sie, wo Sie diese Daten platzieren möchten.

kAudioUnitProperty_SetRenderCallback oftmals wird der Begriff "pull" bei diesem verwendet. Dies wird verwendet, wenn die Lautsprecher mehr Daten benötigen, um sie an die Lautsprecher auszugeben. Es wird also die Audiodaten einholen, die Sie in diesem Rückruf bereitstellen.

1voto

Vanya Punkte 4869

Ich habe dieses Zitat auf der Apple-Website gefunden.

//Hinweis: Einige alte V1-Beispiele verwenden möglicherweise
//"kAudioUnitProperty_SetInputCallback", das in der alten API vorhanden war,
//anstelle von "kAudioUnitProperty_SetRenderCallback".
//Ab sofort sollte "kAudioUnitProperty_SetRenderCallback"
//verwendet werden.

für weitere Details: https://developer.apple.com/library/content/technotes/tn2097/_index.html

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