exportAsynchronouslyWithCompletionHandler调用上的AVAssetExportSession上的错误访问错误

时间:2011-10-21 16:30:56

标签: iphone avfoundation avassetexportsession

我正在尝试使用以下代码修剪视频:

        AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@.mp4",documentsDirectory,name]] options:nil]; 


    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:videoAsset presetName:AVAssetExportPresetHighestQuality];
    NSURL *url = [[NSURL alloc] initWithString:[NSString stringWithFormat:@"%@/finalOutput.mp4",documentsDirectory]];
    exportSession.outputURL = url;

    NSLog(@"outputting to: %@", [NSString stringWithFormat:@"%@/finalOutput.mp4",documentsDirectory,name]);
    exportSession.outputFileType = AVFileTypeQuickTimeMovie;
    CMTimeRange timeRange = CMTimeRangeMake(flashbackStart, CMTimeSubtract(flashbackEnd, flashbackStart));
    exportSession.timeRange = timeRange;

    [exportSession exportAsynchronouslyWithCompletionHandler:^{
        switch (exportSession.status) {
            case AVAssetExportSessionStatusCompleted:
                // Custom method to import the Exported Video
                //[self loadAssetFromFile:exportSession.outputURL];
                NSLog(@"completed!!!");
                break;
            case AVAssetExportSessionStatusFailed:
                //
                NSLog(@"Failed:%@",exportSession.error);
                break;
            case AVAssetExportSessionStatusCancelled:
                //
                NSLog(@"Canceled:%@",exportSession.error);
                break;
            default:
                break;
        }
    }];

但是,我对此行的访问错误:

[exportSession exportAsynchronouslyWithCompletionHandler:^{

即使启用了NSZombie,我也没有得到有关错误的任何详细信息。谁能解释一下这里发生了什么?输入视频文件确实存在,输出视频文件在我尝试写入之前不存在。

谢谢, 詹姆斯

2 个答案:

答案 0 :(得分:2)

事实证明问题出在我使用的NSURL上。我所要做的只是使用initFileURLWithPath,问题就解决了!

答案 1 :(得分:1)

您可能遇到存储类型问题。尝试将__block添加到exportSession。

__block AVAssetExportSession *exportSession...

您可以在这里阅读更多内容:

http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW5