2014-11-10 3 views
2

Мне нужно сохранить видео в рулон камеры, видео в виде nsdata. Я знаю, что это методСохраните nsdata (mp4 video) в кадре камеры

UISaveVideoAtPathToSavedPhotosAlbum(videopath, self, @selector(video:didFinishSavingWithError:contextInfo:), nil); 
- (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { 

    NSLog(@"is error?%@",error); 
} 

попытался Также это, но не работает для меня

NSURL *movieURL = [NSURL fileURLWithPath:self.videoPath]; 

     NSLog(@"movie url== %@",self.videoPath); 
        ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
       [library writeVideoAtPathToSavedPhotosAlbum:movieURL 
              completionBlock:^(NSURL *assetURL, NSError *error){NSLog(@"complete ");}]; 

Этот метод принимает путь не NSData. что мне делать?

здесь Видео путь = @ "/ вар/мобильные/Применения/AE75E729-7F10-478B-9DAF-E730EB4231D1/Документы/Видео/12.mp4"

ответ

0

Я видел пример [здесь] (https://github.com/versluis/Video-Recorder)

Я не пробовал, но надеюсь, что это вам поможет.

Скачать код и увидеть код в ViewController.m

NSURL *chosenMovie = [info objectForKey:UIImagePickerControllerMediaURL]; 

// save it to the documents directory 
NSURL *fileURL = [self grabFileURL:@"video.mov"]; 
NSData *movieData = [NSData dataWithContentsOfURL:chosenMovie]; 
[movieData writeToURL:fileURL atomically:YES]; 

// save it to the Camera Roll 
UISaveVideoAtPathToSavedPhotosAlbum([chosenMovie path], nil, nil, nil); 

Сначала создайте файл с NSData, а затем путь этого файла передается в методе UISaveVideoAtPathToSavedPhotosAlbum.

Вот еще одна ссылка на [stackoverflow answer] (save mp4 video to device camera roll), которая сохраняет видео в формате .mp4.

+0

Thnks для вас быстрый ответ, но я пробовал это решение много раз, но это не работает для меня – zohaibkhan

0
NSData *video_data=//Your Video NSData 
    // Write it to cache directory 
    NSString *path = [[NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"file1.mp4"]; 
    [video_data writeToFile:path atomically:YES]; 
    NSLog(@"Path:%@",path); 
    // After that use this path to save it to PhotoLibrary 
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
    [library writeVideoAtPathToSavedPhotosAlbum:[NSURL fileURLWithPath:path] completionBlock:^(NSURL *assetURL, NSError 
*error) { 
     if (error) { 
      NSLog(@"%@", error.description); 
     }else { 
      NSLog(@"Done :)"); 
     } 
    }]; 
0

если ур VideoPath подобен

UploadfilePathString = @"/var/mobile/Applications/AE75E729-7F10-478B-9DAF-E730EB4231D1/Documents/Videos/12.mp4" 

затем конвертировать видео путь к NSData таким образом

NSError* error = nil; 
NSData *uploadFileData = [NSData dataWithContentsOfFile:UploadfilePathString options:0 error:&error]; 
    NSLog(@"Data read from %@ with error: %@", uploadFileData, error); 

вывод: речь идет в формате данных затем просто загрузить формат данных на сервер , Спасибо

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