2009-05-16 9 views
16

Tengo que trabajar en una pequeña aplicación que capture audio de la cola de audio de la Mac y necesite guardarla en el disco en un formato de audio razonable.¿Muestra de código para capturar audio de una Mac en Cocoa y guardarlo en un archivo?

¿Alguien tiene un código de muestra decente (Cocoa/Objective-C) que puedan compartir?

Necesito específicamente capturar el audio que se está pasando al dispositivo de salida incorporado para grabarlo. ¿Alguna idea? Las respuestas hasta ahora han sido útiles, pero no me han ayudado a entender cómo se pueden capturar los datos que van a la salida, independientemente de la fuente de entrada.

Respuesta

9

Trabajar con audio en Mac OS X implica la interacción con Core Audio. Para una descripción general rápida, eche un vistazo al Core Audio Overview.

Tendrá que interactuar con el AUHAL para realizar entradas y salidas; Existe un technical note que detalla los pasos necesarios para hacerlo. Este código parece estar escrito generalmente en C++, ya que es el procedimiento que se toma en el SimplePlayThru demo.

Esto no cubre los pasos reales necesarios para capturar esa entrada de audio. Sin embargo, estos enlaces deberían proporcionarle suficiente código de muestra para comenzar a interactuar con su dispositivo de entrada. Publicaré más enlaces en esta respuesta si me cruzo con ellos.


Echa un vistazo a /Developer/Example/CoreAudio/Services/AudioFileTools. Específicamente, mira afrecord.cpp. Es cierto que esto no es Cocoa per se; El cacao en sí no parece tener capacidades específicas para grabar. Si desea interactuar con el archivo C++ allí, es probable que necesite escribir Objective C++ como en SimplePlayThru.

+0

Gracias! Sabía sobre Core Audio y había echado un vistazo. Estoy muy interesado si alguien ha hecho algo similar que pueda echarle un vistazo. Pulgares arriba para la respuesta, independientemente ... – Demi

3

Hay un buen ejemplo de código en Ulli Kusterers website
Cocoadev también tiene un article sobre ese tema. El código fuente en la parte inferior de la página utiliza QuickTimes Sequence Grabber API. Me gustaría ir con Core Audio.

+0

Esta es una buena información. ¡Gracias! – Demi

Cuestiones relacionadas