2014-02-20 76 views
0

我已經將AVAnimator庫添加到現有項目(啓用了ARC),以便將透明度視頻添加到我的iOS應用程序,並且無法播放動畫或應用程序甚至跑步。此異常狀態越來越拋出:AVAnimator崩潰,'movieFilePath'爲零'

*在+ [AVFileUtil getResourcePath:]斷言故障,/Classes/AVAnimator/AVFileUtil.m:35 2014年2月20日11:12:49.091 [3977:60B] *終止應用程序由於未捕獲的異常「NSInternalInconsistencyException」,理由是:「movieFilePath是零」

的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];} 

任何人只要有一個線索,就是我在這裏失蹤?

+0

最可能的情況是您忘記將「globe02.7z」存檔添加到文件名拼寫錯誤的項目中。也有可能數據有問題,但是零基本上只意味着它不存在或無法加載。您將需要重新檢查基礎知識,並將其與已知的工作示例進行比較(只需使用我網頁上的示例之一)。 – MoDJ

+0

我已經做到了。我試圖從StreetfighterII項目加載一個示例文件。同樣的問題。我想我會把這個放在後面,當我有更多的時間來玩時,它會回來。至於我目前的項目,我只會使用帶有預渲染背景的視頻,這樣我就不必混淆alpha通道。 –

回答

0

,其生成斷言代碼:

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

所以,問題是,iOS版無法從應用程序資源加載@「globe02.7z」,很可能是因爲您沒有包括在該文件建立設置。這是你的項目文件中的一個非常小的配置錯誤。