AVAnimator与'movieFilePath失败'崩溃

时间:2014-02-20 17:38:43

标签: ios7

我已将AVAnimator库添加到现有项目(启用了ARC),以便为我的iOS应用添加透明视频,而我无法播放动画或甚至运行应用程序。这个异常不断被抛出:

  

* + [AVFileUtil getResourcePath:],/ Class / AVAnimator / AVFileUtil.m:35中的断言失败   2014-02-20 11:12:49.091 [3977:60b] * 由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'movieFilePath is nil'

video.7z包含在项目中,但我显然遗漏了一些东西。

这是我的viewController代码:

- (void)viewDidLoad{
[super viewDidLoad];

animationView = [AVAnimatorView aVAnimatorViewWithFrame:CGRectMake(0,0,600,768)];
media = [AVAnimatorMedia aVAnimatorMedia];
NSString* movieResourceFilename = @"globe02.mvid";
AV7zAppResourceLoader *resLoader = [AV7zAppResourceLoader aV7zAppResourceLoader];
resLoader.archiveFilename = @"globe02.7z";
resLoader.movieFilename = movieResourceFilename;
resLoader.outPath = [AVFileUtil getTmpDirPath:movieResourceFilename];
media.resourceLoader = resLoader;
AVMvidFrameDecoder *frameDecoder = [AVMvidFrameDecoder aVMvidFrameDecoder];
media.frameDecoder = frameDecoder;
//media.animatorFrameDuration = AVAnimator30FPS;      
[media prepareToAnimate];

[self.view addSubview:animationView];

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(animatorDoneNotification:)
                                             name:AVAnimatorDoneNotification
                                           object:media];}

- (void)animatorDoneNotification:(NSNotification*)notification {
NSLog( @"animatorDoneNotification" );
[animationView attachMedia:media];
[media startAnimator];}

任何人都知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

生成该断言的代码是:

NSString* movieFilePath = [[NSBundle mainBundle] pathForResource:resFilename ofType:nil];
NSAssert(movieFilePath, @"movieFilePath is nil");

所以,问题是iOS无法加载@" globe02.7z"来自应用程序资源,可能是因为您没有在构建设置中包含该文件。这是项目文件中的一个非常小的配置错误。