2016-11-03 3 views
0

Я записываю видео с помощью AVCapture и передаю этот URL-адрес видеому следующему контроллеру, где у меня есть AVPlayer, который отлично воспроизводит видео и использует этот код для загрузки видео на сервер, когда я звоню эта форма viewDidAppear работает нормально, но когда я вызываю это в теге, действие тела запроса отсутствует, значит, сервер не получил видео. У одного есть идея, что я пропадаю или делаю неправильно.iOS Загрузка AVCapture Записанное видео на сервер через 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

Что говорит ваша консоль? Вы проверяли, что, когда вы нажимаете кнопку, файл существует в _videoUrl? – otusweb

+0

используя тот же url, я играю видео в AVPlayer. –

+0

@otusweb благодарит за то, что указал мне вправо. Я отслеживаю проблему, actullay Я использую singleton класс для сохранения временного видео в библиотеке фотографий. В котором я использовал завершение блокировки, когда я вызываю метод видеопогружения в viewDidLoad, этот блок активен, а видео выходит из URL-адреса и когда я вызываю действие кнопки на этом выполнение временного блока завершилось, и временное видео было удалено из этого URL-адреса. –

ответ

0

изменить это:

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

Я тоже попробовал это, но не работал. –

+0

Вы пытались загрузить с помощью NSDATA? – KKRocks

+0

не пытался с NSData, дайте мне попробовать и расскажут вам. –

Смежные вопросы