嘿大家我有相当长的时间试图弄清楚什么(应该)非常直截了当。我有一个打开的套接字,我只想将从麦克风捕获的 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];