通过POST命令将音频从ios流式传输到REST服务器
问题描述:
如何将音频编码为u-law g.711?然后通过http将该音频发送到远程服务器。通过POST命令将音频从ios流式传输到REST服务器
音频流:发送音频的连续流至 当前观看的相机。音频需要以G711 mu-law编码,编码为 64 kbit/s,以便传送到床边的Axis相机。发送(这 应该在SSL帖子的网址,以连接服务器):POST /transmitaudio ID =内容类型:音频/基本 的Content-Length:99999(长度会被忽略)
我已搜查在谷歌和这里,但主要是我发现的方法是从服务器流到我的设备,而不是其他方式。我没有找到这个帖子(http://stackoverflow.com/questions/7750329/how-to-send-audio-file-through-http-post-to-a-server-from-ios),但它似乎喜欢的答案不是很具描述性,也没有任何一个被接受。
这是我到目前为止。
{
NSNumber *formatObject;
switch (self.recordEncoding) {
case (ENC_AAC):
formatObject = [NSNumber numberWithInt: kAudioFormatMPEG4AAC];
break;
case (ENC_ALAC):
formatObject = [NSNumber numberWithInt: kAudioFormatAppleLossless];
break;
case (ENC_IMA4):
formatObject = [NSNumber numberWithInt: kAudioFormatAppleIMA4];
break;
case (ENC_ILBC):
formatObject = [NSNumber numberWithInt: kAudioFormatiLBC];
break;
case (ENC_ULAW):
formatObject = [NSNumber numberWithInt: kAudioFormatULaw];
break;
default:
formatObject = [NSNumber numberWithInt: kAudioFormatAppleIMA4];
}
[recordSettings setObject:formatObject forKey: AVFormatIDKey];
[recordSettings setObject:[NSNumber numberWithFloat:44100.0] forKey: AVSampleRateKey];
[recordSettings setObject:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
[recordSettings setObject:[NSNumber numberWithInt:12800] forKey:AVEncoderBitRateKey];
[recordSettings setObject:[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey];
[recordSettings setObject:[NSNumber numberWithInt: AVAudioQualityHigh] forKey: AVEncoderAudioQualityKey];
}
这似乎是U法(编码因此得名),但我什么都不知道的音频编解码器和不知道如果G711μ律甚至有可能在iOS。
如何让我的音频以正确的格式编码?
那么如何将编码的音频发送到服务器?现在我有它去临时文件的位置,但即使我改变了,我没有看到如何帮助。我知道这是很多要求,我不想给我一个答案,但我需要一个地方开始,因为在目前我相当迷茫,如何做到这一点。
答
这发出声音是做记录
self.request = [client multipartFormRequestWithMethod:@"POST" path:[NSString stringWithFormat:@"transmitaudio?id=%@",self.restClient.sessionId] parameters:parameters constructingBodyWithBlock: ^(id <AFMultipartFormData>formData)
{
NSError * error = [[NSError alloc]init];
[formData appendPartWithFileURL:self.audioHandler.soundFileURL name:@"sound.caf" error:&error];
// NSLog(@"error %@", [error localizedDescription]);
}];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:self.request];
[self.queue addOperation:operation];
此刻试图AFNetworking后 – 2012-04-16 18:37:35