2010-01-15 7 views
2

J'ai récemment joué avec le SDK et j'ai eu l'idée de créer un autotuner personnel (parce que je suis tout aussi génial que T-Pain). En outre, je voulais connecter un microphone de haute qualité dans la prise casque, et je voulais que mon audio soit traité dans un rappel, puis copié dans le tampon de sortie. Cela a plusieurs implications:Problèmes d'IO Remote iPhone

  1. Quand mon entrée audio est acheminé à travers le microphone intégré, je dois être en mesure de traiter cette entrée, et l'envoyer une fois que mon entrée a arrêté (cela fonctionne).

  2. Lorsque mon entrée audio est acheminée via l'entrée microphone de la prise casque, je souhaite que la sortie soit envoyée immédiatement.

routage, cependant, ne semble pas fonctionner correctement lors de l'utilisation des modes de AudioSession et préséances, qui devrait techniquement vous permettre de rediriger la sortie vers les haut-parleurs iPhone, peu importe où l'entrée vient. Ceci est documenté pour fonctionner, mais dans la pratique, ne fonctionne pas vraiment.

L'E/S distante n'est cependant pas documentée du tout. Quelqu'un ayant de l'expérience en utilisant des unités audio IO à distance, pouvez-vous me donner un aperçu raisonnable de haut niveau sur la façon de le faire correctement? J'ai utilisé le code d'exemple aurioTouch, mais je rencontre des erreurs où je reçois des codes d'erreur comme -50 et -10863, dont aucun n'est documenté.

Merci d'avance.

+0

Vous pouvez brancher des microphones non-Apple dans la prise casque? –

Répondre

1

L'exemple aurioTouch implémente la lecture à distance viaIO.
Vous pouvez modifier les échantillons avant de les transmettre.

Il appelle simplement AudioUnitRender dans le rappel de rendu en sortie. NB: cette astuce ne semble pas fonctionner si vous portez le code
à CoreAudio de style OSX. Là, 99% du temps, vous avez besoin
pour créer deux AUHAL (RemoteIO-a-aime) et passer
les échantillons entre eux.