Iphone 控件不进入完成块内部

Iphone 控件不进入完成块内部,iphone,ios,ios5,ios6,ios4,Iphone,Ios,Ios5,Ios6,Ios4,我想修剪视频,为此我使用AveExport会话并将其时间范围属性设置为修剪视频。但问题是控件没有进入完成块。我使用了以下代码 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSFileManager *manager = [NSFile

我想修剪视频,为此我使用AveExport会话并将其时间范围属性设置为修剪视频。但问题是控件没有进入完成块。我使用了以下代码

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSFileManager *manager = [NSFileManager defaultManager];

NSString *outputURL = [documentsDirectory stringByAppendingPathComponent:@"output"] ;
[manager createDirectoryAtPath:outputURL withIntermediateDirectories:YES attributes:nil error:nil];

outputURL = [outputURL stringByAppendingPathComponent:@"output.mp4"];
// Remove Existing File
[manager removeItemAtPath:outputURL error:nil];    


AVURLAsset *videoAsset = [AVURLAsset URLAssetWithURL:videoURL options:nil];    

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:videoAsset presetName:AVAssetExportPresetHighestQuality];
exportSession.outputURL = [NSURL fileURLWithPath:outputURL];
exportSession.outputFileType = AVAssetExportPresetAppleM4A;
    CMTimeRange timeRange = CMTimeRangeMake(CMTimeMake(start, 1), CMTimeMake(end - start, 1));
exportSession.timeRange = timeRange;

[exportSession exportAsynchronouslyWithCompletionHandler:^{

    NSLog(@"Hi there inside completion handler");
    switch (exportSession.status) {
        case AVAssetExportSessionStatusCompleted:
            // Custom method to import the Exported Video
            [self exportDidFinish:exportSession];
            break;
        case AVAssetExportSessionStatusFailed:
            //
            NSLog(@"Failed:%@",exportSession.error);
            break;
        case AVAssetExportSessionStatusCancelled:
            //
            NSLog(@"Canceled:%@",exportSession.error);
            break;
        default:
            break;
    }
}];

请帮我解决这个问题。

找到解决方案了。如果导出会话未初始化,控件将不会进入完成处理程序。为此,您可以在导出会话不为null以及继续完成处理程序中进行条件检查。
在我的例子中,它没有被初始化,这就是为什么它没有进入完成区

您确定您等待出口商完成的时间足够长吗?您是否同时使用AVPlayer输出音频和/或视频?在这种情况下,您必须确保音频会话是可混合的。您是否在设备上尝试过该代码?并不是所有的AVFoundation类都能在模拟器上同样出色地工作。