2012-10-16 44 views
0

我对mac开发很陌生,我很难理解所有这些Cocoa的工作原理。资产加载失败(Cocoa for OS X)

现在我正在从视频文件中获取静止图像,为了做到这一点,我需要加载我的视频文件(资产)。

NSURL *url = [[NSURL alloc]initWithString:@"/Users/EVG/Desktop/myfile.mp4"]; 

AVURLAsset *myAsset = [[AVURLAsset alloc] initWithURL:url options:nil]; 

NSArray *keys = @[@"tracks"]; 

[myAsset loadValuesAsynchronouslyForKeys:keys completionHandler:^() 
{ 
    NSError *error = nil; 
    AVKeyValueStatus tracksStatus = [myAsset statusOfValueForKey:@"tracks" error:&error]; 

    if (tracksStatus == AVKeyValueStatusFailed || 
     tracksStatus == AVKeyValueStatusCancelled) 
    { 
     NSLog(@"Failed with error: %@", [error localizedDescription]); 
    } 
}]; 

在此之后代码被执行,我发现了以下消息:

的NSView控制器[644:4413]失败,错误:操作无法完成

有谁知道如何解决我遇到的这个问题?

谢谢!!!

+0

你确定这条路是对的吗?通常如果你对一个绝对目录进行硬编码,你会想用斜线作为前缀;绝大多数时候,我看到像你写的路径/用户/ EVG ...(带有前斜杠)。如果您的AVURLAsset未正确初始化,那么以后可能会导致问题。 – Tim

回答

2

您的网址错误。首先,绝对文件路径应以/开头,如/Users/EVG/Desktop/myfile.mp4。但是,这不是一个URL。一个文件的URL应该是​​。

+0

我的文件的URL是正确的,但我仍然收到此错误。有任何想法吗? – aleclarson