사용자 사진 라이브러리에서 비디오를 가져 오는 중이고 사용자가 자신의 사진 라이브러리에서이 비디오를 삭제하더라도 비디오를 재생할 수 있도록 사용자 문서 폴더에 비디오를 저장합니다. 이 파일의 URL은 핵심 데이터에 저장됩니다. 다음에 앱을 실행할 때까지 모든 것이 잘 작동합니다. 어떻게 든 URL이 더 이상 유효하지 않은 것 같습니다. [AVPlayer playerWithURL : videoURL]이 실패 할 때 비디오 파일을 삭제할 수 있기 때문에 이상합니다.앱 재시작 후 AVPlayer playerWithURL이 작동하지 않습니다.
AVPlayer* player = [AVPlayer playerWithURL:videoURL]; // <- AFTER I RESTART THE APP THIS METHOD ALWAYS RETURNS nil!!
AVPlayerViewController* viewController = [[AVPlayerViewController alloc] init];
[self presentViewController:viewController animated:YES completion:nil];
viewController.player = player;
[player play];
많은 감사에서 :
+ (NSURL*) saveVideoInDocumentsFolder:(NSURL*)videoURL name:(NSString*)name {
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString* documentsDirectory = [paths objectAtIndex:0];
NSString* pathComponent = [NSString stringWithFormat:@"/%@.%@", name, [videoURL pathExtension]];
NSString* path = [documentsDirectory stringByAppendingPathComponent:pathComponent];
NSError* error = nil;
NSData* videoData = [NSData dataWithContentsOfURL:videoURL options:0 error:&error];
if (error)
return nil;
BOOL success = [videoData writeToFile:path options:NSDataWritingAtomic error:&error];
if (success)
return [NSURL fileURLWithPath:path];
return nil;}
이 내가 비디오를 재생하는 방법입니다 : 이것은 비디오를 저장하는 방법입니다
- (void) imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
NSURL* videoURL = info[UIImagePickerControllerMediaURL];}
: 여기 내가 동영상 URL을 선택하는 방법이다 전진!
감사합니다, 매트! 각 세션에서 문서 폴더를 가리키는 기본 URL을 찾는 가장 정확한 방법은 무엇입니까? – Mig70
정확하게 그랬던 것처럼. 문서 디렉토리로 가야 할 때마다'documentsDirectory'를 다시 계산하면됩니다. :) 앱 실행 중에는 계속 유지되지만 그게 전부입니다. – matt