2009-05-16 9 views
16

Je dois travailler sur une petite application qui capture l'audio de la file d'attente audio du Mac et doit l'enregistrer sur disque dans un format audio raisonnable.Échantillon de code pour capturer l'audio d'un Mac dans Cocoa et enregistrer dans un fichier?

Est-ce que quelqu'un a un code d'échantillon décent (Cocoa/Objective-C) qu'ils peuvent partager?

J'ai spécifiquement besoin de capturer l'audio qui est transmis au périphérique de sortie intégré afin de l'enregistrer. Des idées? Les réponses à ce jour ont été utiles, mais ne m'ont pas aidé à comprendre comment les données allant à la sortie peuvent être capturées, indépendamment de la source d'entrée.

Répondre

9

L'utilisation de l'audio dans Mac OS X implique l'interfaçage avec Core Audio. Pour un aperçu rapide, jetez un oeil à la Core Audio Overview.

Vous devrez vous connecter à AUHAL pour effectuer l'entrée et la sortie; un technical note existe détaillant les étapes nécessaires pour le faire. Ce code semble généralement être écrit en C++, car c'est la procédure utilisée dans le SimplePlayThru demo.

Ceci ne couvre pas les étapes réelles requises pour capturer cette entrée audio. Toutefois, ces liens doivent vous fournir suffisamment de code pour commencer à interagir avec votre périphérique d'entrée. Je posterai plus de liens dans cette réponse si je les rencontre.


Jetez un coup d'œil à /Developer/Example/CoreAudio/Services/AudioFileTools. Plus précisément, regardez afrecord.cpp. Certes, ce n'est pas Cocoa en soi; Le cacao lui-même ne semble pas avoir de capacités spécifiques pour l'enregistrement. Si vous voulez faire une interface avec le fichier C++, vous aurez probablement besoin d'écrire un Objective C++ comme dans SimplePlayThru.

+0

Merci! Je connaissais Core Audio et j'avais pris un coup d'oeil. Je suis très intéressé si quelqu'un a fait quelque chose de similaire que je peux jeter un coup d'oeil. Bravo pour la réponse, peu importe ... – Demi

3

Il y a un bon exemple de code à Ulli Kusterers website
CocoaDev a également un article sur ce sujet. Le code source au bas de la page utilise l'API QuickTimes Sequence Grabber. J'irais avec Core Audio.

+0

Ceci est une bonne information. Merci! – Demi

Questions connexes