2012-03-22 6 views
8

¿Cómo puedo transmitir audio desde el micrófono de un iPhone a una Mac/PC? ¿Ya hay algún marco para esto, o puedo enviar audio por sockets? Aunque soy nuevo en enchufes. Básicamente, quiero poder hablar en el iPhone, y la computadora recibirá la entrada de micrófono del iPhone como su propia entrada de micrófono para computadoras que no tienen micrófonos. Ya tengo una aplicación que hace una conexión Bonjour con una Mac, que ejecuta un servidor muy simple, y el iPhone puede enviar texto a la computadora, pero ¿cómo podría el iPhone enviar audio, audio en vivo desde el micrófono?¿Cómo puedo transmitir audio desde el micrófono de un iPhone a una Mac/PC mediante tomas o un marco?

Respuesta

4

Necesitará una combinación de AVCaptureSession y AVCaptureDevice para leer desde el micrófono; consulte la Guía de programación de AV Foundation. http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVCaptureAudioDataOutput_Class/Reference/Reference.html#//apple_ref/occ/cl/AVCaptureAudioDataOutput

Para enlace para usar sokets

@interface Client : NSObject { 
    NSInputStream *_inputStream; 
    NSOutputStream *_outputStream; 
} 

@implementation Client 

- (void)initNetworkCommunication { 
    CFReadStreamRef readStream; 
    CFWriteStreamRef writeStream; 
    CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)@"localhost", 50000, &readStream, &writeStream); 

    _inputStream = (__bridge NSInputStream *)readStream; 
    _outputStream = (__bridge NSOutputStream *)writeStream; 

    [_inputStream setDelegate:self]; 
    [_outputStream setDelegate:self]; 

    [_inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 
    [_outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; 

    [_inputStream open]; 
    [_outputStream open]; 
} 

// send data to server 


- (IBAction)onSendButtonTapped:(id)sender { 
    NSString *command = self.commandField.text; 
    NSData *data = [[NSData alloc] initWithData:[command dataUsingEncoding:NSUTF8StringEncoding]]; 
    [_outputStream write:[data bytes] maxLength:[data length]]; 
} 
Cuestiones relacionadas