2012-03-15 47 views
0

对于自定义导入的影片文件,pathForResource返回的NSURL对象为null。MPMoviePlayerController和NSURL对象

-(NSURL *)localMovieURL 
{ 
    NSURL *theMovieURL = nil; 
    NSBundle *bundle = [NSBundle mainBundle]; 
    if (bundle) 
    { 
      NSString *moviePath = [bundle pathForResource:@"Movie"  ofType:@"m4v"]; 
     //NSString *moviePath = [bundle pathForResource:@"Movie_01" ofType:@"m4v"]; 
     //NSString *moviePath = [bundle pathForResource:@"Sample"  ofType:@"m4v"]; 
    if (moviePath) 
    { 
     theMovieURL = [NSURL fileURLWithPath:moviePath]; 
     } 

    NSLog(@" MMM moviePath = %@", moviePath); 
    NSLog(@" UUU theMovieURL = %@", theMovieURL); 

} 

return theMovieURL; 

} 

考虑从苹果上面的示例代码(示例项目名称 - MoviePlayer)

https://developer.apple.com/library/ios/navigation/index.html?section=Resource+Types&topic=Sample+Code

Movie.m4v自带样品和编译的示例项目发挥的M4V有一点问题都没有。但是,当我制作Movie.m4v的副本时,将其命名为Movie_01.m4v并将该文件拖到项目中,MPMoviePlayerController没有响应。此外,添加的NSLog输出(以MMM和UUU开头变为“... =(null)”,这同样适用于iMovie自带的示例m4v“Sample.m4v”。我之前发布的问题是(here)。我之前的问题涉及一个我自己编写的项目,它有相同的问题:即使电影文件看起来正确导入,“pathForResource”方法也会返回“nil”。 Xcode和我已经以相同的方式将png照片文件导入(拖动)到项目中,但是png照片可以通过手机和模拟器上的编译程序按预期方式显示。 。

回答

2

看来你重复了你的问题。这两个答案似乎是:将电影添加到您的应用程序包(项目构建步骤>复制资源)

+0

感谢您的回答,但我可以在哪里找到(项目构建步骤>复制资源)? – Stanley 2012-03-15 22:32:09

+0

在项目导航器中选择项目,选择目标,点击“Build Phases”,“Copy Bundle Resources”并添加电影。 – 2012-03-15 22:35:57

+0

关于这两个问题,第一个问题是几个小时前,在不同的标题下。第二个是更新并提出另一个问题。旧的与这个链接保持联系,以防万一人们不知道为什么突然关闭一个问题。 – Stanley 2012-03-15 22:38:10