Сохранение / получение видеофайлов в iOS

Я просматривал, но не мог найти решение моей проблемы. Я пытаюсь сохранить некоторые видеофайлы в каталог моего приложения. Я делаю это следующим образом:

  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

// the path to write file
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"myFile"];
NSLog(@"%@",appFile);

[[NSUserDefaults standardUserDefaults] setValue:appFile forKey:@"videoURL"];
[[NSUserDefaults standardUserDefaults]synchronize];
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSData *webData = [NSData dataWithContentsOfURL:videoURL];
[webData writeToFile:appFile atomically:YES];

Мой вопрос заключается в том, является ли это правильным способом сохранения файла фильма, и если да, как мне преобразовать NSData в файл, который можно воспроизвести с помощью MPMoviePlayer? Спасибо за вашу помощь.

PS. Я действительно не хочу использовать библиотеку фотографий, поскольку приложение, вероятно, будет содержать достаточное количество видео.

1 ответ

Если вы действительно хотите сохранить его в документах своего приложения, вам придется использовать NSFileManager

это будет выглядеть примерно так

NSString* completeFileName = [NSString stringWithFormat:@"%@",movieName];
NSString* filename = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:completeFileName];

[[NSFileManager defaultManager] createFileAtPath:filename contents:yourMovieData attributes:nil];

Вам также может понадобиться использовать NSFileHandle

Чтобы прочитать видео в вашем MPMoviePlayer, если вы думаете, что вы можете сделать NSURL, как это

[NSURL fileURLWithPath:path isDirectory:NO];

затем вы передаете этот URL своему MPMoviePlayer.

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

Другие вопросы по тегам