1

嘿大家我有相当长的时间试图弄清楚什么(应该)非常直截了当。我有一个打开的套接字,我只想将从麦克风捕获的 AAC 音频数据传输到它。似乎使用 AV 录音机您必须指定一个文件,所以我指定了一个内存文件。如何捕获并仅通过管道连接到套接字?

我在想也许我需要设置一个计时器并每隔一段时间取出文件的内容,但这似乎是错误的方法。

我对 iOS 比较陌生,所以任何指针都会有所帮助。

再一次,最终目标是获取这些记录的数据并将其实时(伪)推送到套接字。

记录当前工作正常的音频的代码。

NSString *tempDir = NSTemporaryDirectory();
NSString *soundFilePath = [tempDir stringByAppendingPathComponent:@"sound.m4a"];
NSURL *soundFileURL = [NSURL fileURLWithPath:soundFilePath];
//NSString *path = [soundFileURL absoluteString];
//NSLog(path);

NSDictionary *recordSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt: kAudioFormatMPEG4AAC], AVFormatIDKey,
                                [NSNumber numberWithFloat:16000.0], AVSampleRateKey,
                                [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
                                nil];
NSError *error = nil;
recorder = [[AVAudioRecorder alloc] initWithURL:soundFileURL settings:recordSettings error:&error];
if (!recorder) {
    NSLog(@"audioRecorder: %@ %d %@", [error domain], [error code], [[error userInfo] description]);
    return;
}

[recorder prepareToRecord];
session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:nil];
[session setActive:YES error:nil];
[recorder record];

使用 AsyncSocket 向套接字发送标准字符串的代码:

NSString *string = [NSString stringWithFormat:@"Lame thing passed%@"
                    "\r\n", standard_string];

string = [[NSString alloc] initWithString:string];

NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
[string release];

NSLog(@"Sending HTTP Request.");
[socket writeData:data withTimeout:-1 tag:5];
4

0 回答 0