0

オーディオをフォーマットで録音し、ファイルを.wav変換してサーバーに送信しています。.wav1NSData

記録されたパスは次のとおりです。

file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D758/Documents/sound.wav

私は以下を使用してサーバーに送信しています:

audioURL=@"file://localhost/var/mobile/Applications/8F81BA4C-7C6F-4496-BDA7-30C45478D758/Documents/sound.wav";


NSURL *url=[NSURL URLWithString:urlString];
 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: url];
    [request setHTTPMethod: @"POST"];
    [request setValue: @"multipart/form-data" forHTTPHeaderField: @"Content-Type"];
NSData *audiodata = [NSData dataWithContentsOfURL:audioURL];
NSMutableData *highScoreData = [NSMutableData data];
[highScoreData appendData:audiodata];
[request setHTTPBody:highScoreData];
 nsurlConnection = [[NSURLConnection alloc] initWithRequest: request
                                                  delegate: self];

これを再生すると、正しく録音された音声が得られます。ただし、サーバーから同じ録音音声を再生すると、実際の録音音声ではなく「引用」と表示されます。

オーディオ録音の方法とオーディオの送信方法の完全なコードは、ここにあります

私がこれを行った方法(つまり、サーバーに送信する方法)が正しいかどうか教えてください。

4

3 に答える 3

0

アップロードに使用するコードは次のとおりです。ヘッダー部分は、サーバーがこれを処理する方法によって異なります。ここでは AsiFormdata の方が適切です。

NSString* fileString;

fileString = [[self documentsPath]
              stringByAppendingPathComponent:@"testcombine.m4a"];

NSData* songData=[NSData dataWithContentsOfFile:fileString];



NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"http://%@/UsingWebServer2/UploadServlet",RemoteEndpoint]];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

 [request setData:songData withFileName:@"upload_test.m4a" andContentType:@"audio/m4a" forKey:@"file"];

//[request appendPostData:[Jstring  dataUsingEncoding:NSUTF8StringEncoding]]; 
[request startSynchronous];
于 2013-04-09T03:09:37.933 に答える
-1

multipart / form-dataを介してデータを送信する場合は、を使用しますASIFormDataRequest詳細については、ここでドキュメントを検索してください。

于 2013-03-10T13:12:57.453 に答える