2011-10-03 3 views
0

pathForResource가 어떻게 작동하는지 잘 모르겠습니다. 내 앱에서 영화를 재생하고 싶었습니다. Xcode로 드래그하여 상자를 선택하여 하위 폴더에 추가하고 필요한 경우 디렉토리를 만듭니다. 나는 이것을 Videos라는 별개의 폴더에 두었습니다. 이 응용 프로그램에 대한 리소스 폴더가 없습니다 (다른 사람이 파일을 삭제했으며 각 유형의 리소스 (img, vid 등)에 폴더가있는 것이 더 좋을 것이라고 생각하여 내 영화를 어디에 놓을 지 잘 모릅니다. 그것은 NSBundle 방법을 사용하여 액세스. 이것은 내가 무엇을 가지고 있지만, 재생하지 않는 것 같습니다.NSBundle pathforResource, 무비 파일 배치 위치

NSString *filepath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"m4v"]; 
    NSURL *fileURL = [NSURL fileURLWithPath:filepath]; 
    MPMoviePlayerController *moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL]; 
    [moviePlayerController.view setFrame:CGRectMake(120, 120, 300, 200)]; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(moviePlaybackComplete:) 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:moviePlayerController]; 
    [self.view addSubview:moviePlayerController.view]; 
    moviePlayerController.fullscreen = YES; 
    [moviePlayerController play]; 

감사합니다.

답변

0

이 코드가 mainBundle 모든 것을 나열해야

NSString *bundleRoot = [[NSBundle mainBundle] bundlePath]; 
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:bundleRoot error:nil]; 
NSArray *files = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.m4v'"]]; 
NSLog(@"Directory Start"); 
NSLog(@"%@",dirContents); 
NSLog(@"Directory End"); 
NSLog(@"files: %@",files); 

또는 당신은 ~ user/Library/Application Support/iPhone Simulator로 가서 당신을 찾을 수 있습니다. 앱을 마우스 오른쪽 버튼으로 클릭하고 콘텐츠를 표시하여 앱의 디렉토리 구조를 확인합니다.

+0

NS 경로를 파일 경로로 지정할 수 있다면 내 경로가 올바른 것으로 가정하고 있습니까? 그렇지 않으면 NSString 오른쪽 nil 것입니다? 그래서 내가 영화를 틀어 놓고 잘못하고있는 것이 틀림 없어? 감사. – Crystal

+0

파일이 있는지 확인하려면 if 문을 사용해야합니다. 'if ([[NSFileManager defaultManager] fileExistsAtPath : filePath]) {// 파일이 존재하는지 확인 // 실행}' – syclonefx