MPMoviePlayerController和NSURL对象

时间:2012-03-15 22:02:24

标签: iphone mpmovieplayercontroller

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

 -(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;

}

考虑Apple的上述示例代码(示例项目名称 - 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照片可以通过手机和模拟器上的编译程序按预期显示。

希望有人可以提供一些提示。

1 个答案:

答案 0 :(得分:2)

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