2012-03-22 10 views
8

Jak mogę przesyłać dźwięk z mikrofonu iPhone'a na komputer Mac/PC? Czy istnieje już na to jakiś framework, czy mogę po prostu przesłać audio przez gniazda. Jestem jednak nowy w gniazdach. Zasadniczo chcę być w stanie mówić do iPhone'a, a komputer otrzyma wejście mikrofonowe iPhone'a jako własne wejście mikrofonowe dla komputerów, które nie mają mikrofonów. Mam już aplikację, która tworzy połączenie bonjour z komputerem Mac, na którym działa bardzo prosty serwer, a iPhone może wysyłać SMS-y do komputera, ale w jaki sposób iPhone może przesyłać dźwięk, dźwięk na żywo z mikrofonu?Jak mogę przesyłać dźwięk z mikrofonu iPhone'a na komputer Mac/PC za pośrednictwem gniazd lub architektury?

Odpowiedz

4

Do odczytu z mikrofonu potrzebna jest kombinacja AVCaptureSession i AVCaptureDevice - patrz Przewodnik programowania AV Foundation. http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVCaptureAudioDataOutput_Class/Reference/Reference.html#//apple_ref/occ/cl/AVCaptureAudioDataOutput

Dla Link do wykorzystania 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]]; 
}