Сохраните nsdata(mp4 видео) в камеру
Я должен сохранить видео на камеру, видео в виде nsdata . Я знаю, что это метод
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 . что я должен делать?
здесь Путь к видео = @"/var/mobile/Applications/AE75E729-7F10-478B-9DAF-E730EB4231D1/ Документы / Видео /12.mp4"
3 ответа
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 :)");
}
}];
Если ваш 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);
вывод: он приходит в формате данных, а затем просто загрузить формат данных на сервер. Спасибо
Я видел пример [здесь] ( 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.
Вот еще одна ссылка на [stackru answer] ( сохранить mp4-видео на камеру устройства), которая сохраняет видео в формате.mp4.