2012-04-16 3 views
4

u-law g.711にオーディオをエンコードするにはどうすればよいですか?そのオーディオをHTTP経由でリモートサーバーに送信します。iosからPOSTコマンドによるRESTサーバーへのストリームオーディオ

オーディオストリーム:現在表示されている オーディオに連続したストリームを送信します。ベッドサイドのAxisカメラに転送するには、G711 mu-lawで 64 kbit/sでオーディオをエンコードする必要があります。 (この は、接続されたサーバにSSLでPOST URLでなければなりません)を送る:?POST /transmitaudio ID =コンテンツタイプ:オーディオ/基本的な のContent-Length:99999(長さは無視されます)

私が検索しましたグーグルとここにあるが、主に私が見つけるのは、サーバからIデバイスにストリームする方法であり、それ以外の方法ではない。私はこの投稿(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-lawのように見えます、しかし私は、オーディオコーデックについて何も知らないし、G711のミュー法則は、iOSのも、可能であるか知りません。
オーディオを正しい形式でエンコードするにはどうすればよいですか?

どのようにエンコードされたオーディオをサーバーに送信するのですか?今私は一時的なファイルの場所に行っているが、たとえそれを変更したとしても、それがどのように役立つかはわかりません。私はこれが求めていることは分かっていて、私に答えを欲しがっているのではないと思っていますが、現時点でどうすればいいか分かりません。

+0

を記録して行われた後、これはオーディオを送信 –

答えて

0

それは現時点ではAFNetworkingを試みる

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]; 
関連する問題