Как я могу транслировать аудио с микрофона iPhone на Mac / PC через сокеты или фреймворк? - PullRequest
8 голосов
/ 22 марта 2012

Как я могу транслировать аудио с микрофона iPhone на Mac / ПК?Уже есть какие-то рамки для этого, или я могу просто отправить аудио через сокеты.Я новичок в розетках, хотя.По сути, я хочу иметь возможность говорить с iPhone, и компьютер получит микрофонный вход iPhone как собственный микрофонный вход для компьютеров, у которых нет микрофонов.У меня уже есть приложение, которое устанавливает Bonjour соединение с Mac, на котором работает очень простой сервер, и iPhone может отправлять текст на компьютер, но как iPhone может отправлять на него аудио, живое аудио с микрофона?

1 Ответ

4 голосов
/ 20 мая 2012

Для чтения с микрофона вам потребуется комбинация AVCaptureSession и AVCaptureDevice - см. Руководство по программированию AV Foundation.http://developer.apple.com/library/ios/#DOCUMENTATION/AVFoundation/Reference/AVCaptureAudioDataOutput_Class/Reference/Reference.html#//apple_ref/occ/cl/AVCaptureAudioDataOutput

Для ссылки на использование розетки

@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]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...