2010-02-23 4 views
3

Lorsque vous enregistrez à partir d'un microphone dans CoreAudio, à quoi sert kAudioDevicePropertyBufferFrameSize? Le docs indique "A UInt32 whose value indicates the number of frames in the IO buffers". Cependant, cela ne donne aucune indication sur la raison pour laquelle vous voudriez le définir.Dans CoreAudio, quels sont les avantages/inconvénients de la définition de kAudioDevicePropertyBufferFrameSize?

La propriété kAudioDevicePropertyBufferFrameSizeRange vous donne un minimum et un maximum valides pour la taille du tampon. Le réglage de la taille de la mémoire tampon au maximum ralentit-il les choses? Quand voudriez-vous le régler sur autre chose que la valeur par défaut?

+0

Cette constante ne semble pas exister dans iOS .. aucune idée sur la façon de trouver un remplacement? – abbood

Répondre

3

Voici ce qu'ils avaient à dire sur le CoreAudio list:

Une application qui est à la recherche de faible latence IO devrait définir cette valeur en tant petit qu'il peut suivre.

D'autre part, les applications qui ne sont pas ont de grandes exigences d'interaction ou d'autres raisons de faible latence peut augmenter cette valeur pour permettre aux données à morcelés en gros morceaux et réduire le nombre de fois par seconde l'IOProc est appelée. Notez que cette n'abaisse pas nécessairement la charge totale sur le système. En fait, augmentation de la taille du tampon E/S peut avoir l'impact opposé que les tampons sont plus grand, ce qui les rend beaucoup moins susceptibles de tenir dans des caches et ce qui ne peut pas vraiment qui peut vraiment saper la performance.

A la fin de la journée, la valeur d'une application choisit pour sa taille IO est vraiment quelque chose qui dépend de l'application et ce qu'il fait.

1

Habituellement, vous le laissez à la valeur par défaut, mais vous pouvez modifier la taille de la mémoire tampon si vous avez un AudioUnit dans la chaîne de traitement qui attend ou est optimisé pour une certaine taille de mémoire tampon. En outre, généralement, des tailles de tampon plus grandes entraînent une latence plus élevée entre l'enregistrement et la lecture, tandis que des tailles de tampon plus petites augmentent la charge du processeur de chaque canal en cours d'enregistrement.

Questions connexes