2016-11-03 2 views
0

Ich Aufnahme Video gründlich mit AVCapture und übertrage diese Video-URL zum nächsten Controller, wo ich AVPlayer, die Wiedergabe von Video gut und mit diesem Code zum Hochladen von Video auf dem Server, wenn ich anrufe Dieses Formular viewDidAppear es funktioniert gut, aber wenn ich dies in Button Aktion Anfrage Körper fehlt, bedeuten, dass der Server das Video nicht bekommen.Jeder hat eine Idee, was ich vermisse oder falsch machen.iOS AVCapture aufgezeichnete Video auf den Server über AFNetworking 3.0 Multipart

-(void)uploadVideotoServer{ 



[userInfoDict setValue:[[NSUserDefaults standardUserDefaults] valueForKey:@"latitude"] forKey:@"latitude"]; 
[userInfoDict setValue:[[NSUserDefaults standardUserDefaults] valueForKey:@"longitude"] forKey:@"longitude"]; 

    _request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"serverURL" parameters:userInfoDict constructingBodyWithBlock:^(id<AFMultipartFormData> formData){ 
    NSLog(@"\n\n requrst time out is%f\n\n", [_request timeoutInterval]); 

    [formData appendPartWithFileURL:testPAth name:@"video" fileName:@"myvideo.mov" mimeType:@"video" error:nil]; 

    NSLog(@"\n video yp upload %@\n\n",_videoUrl); 
    // got video video url like this 
    //file:///private/var/mobile/Containers/Data/Application/3870C653-DAF9-484C-B51E-F30D8239E6F3/tmp/output7.mov 
} error:nil]; 

[self.view addSubview:_playerProgress]; 


AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 

_uploadTask = [manager 
       uploadTaskWithStreamedRequest:_request 
       progress:^(NSProgress * _Nonnull uploadProgress) 

       { 

        dispatch_async(dispatch_get_main_queue(), ^{ 

        [_playerProgress setProgress:uploadProgress.fractionCompleted]; 

         NSLog(@"\nuploading video vlaues %f\n",uploadProgress.fractionCompleted); 

        }); 
       } 

       completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { 
        if (error) { 
         NSLog(@"Error: %@", error); 


         [_playerProgress setHidden:YES]; 

        } else 
        { 

         NSLog(@"%@ ", response); 


         [_playerProgress setHidden:YES]; 

         NSLog(@"\n\n REsponse Form Server %@\n\n",responseObject); 

        } 
       } 


       ]; 

[_uploadTask resume]; 


} 
+0

Was ist Ihre Konsole sagen? Hast du überprüft, dass beim Drücken der Taste eine Datei bei _videoUrl existiert? – otusweb

+0

mit der gleichen URL Ich spiele Video in AVPlayer. –

+0

@otusweb Danke, dass du mich in die richtige Richtung weist. Ich verfolge das Problem, ich benutze Singleton-Klasse, um temporäre Video zu Foto-Bibliothek zu speichern. In dem ich CompletionBlock verwendet habe, wenn ich videoUploading-Methode in ViewDidLoad aufrufen, dass Block aktiv ist und Video bei URL beendet und wenn ich von Button-Aktion darauf aufrufen Die Zeitblockausführung wurde abgeschlossen und temporäres Video wurde aus dieser URL entfernt. –

Antwort

0

Änderung dieser:

[formData appendPartWithFileURL:testPAth name:@"video" fileName:@"myvideo.mov" mimeType:@"video/quicktime" error:nil]; 
+0

ich versuche das auch, aber hat nicht funktioniert. –

+0

haben Sie versucht, mit NSDATA hochzuladen? – KKRocks

+0

versuche nicht mit NSData lass mich versuchen und werde es dir sagen. –

Verwandte Themen