OGeek|极客世界-中国程序员成长平台

标题: ios - AVAssetExportSession 进度卡在 ipad 上但不在模拟器上 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 09:21
标题: ios - AVAssetExportSession 进度卡在 ipad 上但不在模拟器上

这段代码在模拟器上运行良好。但是,当我尝试在我的 iPad 上运行导出时,它总是以 0.14583-ish 的进度值挂起。有人可以帮我弄清楚为什么吗?卡在这上面好久了。

这是我的代码:

NSArray *compatiblePresets = [AVAssetExportSession exportPresetsCompatibleWithAsset:composition];
if ([compatiblePresets containsObject:AVAssetExportPresetLowQuality]) {
    AVAssetExportSession *exportSession = [[AVAssetExportSession alloc]
                                           initWithAsset:composition presetName:AVAssetExportPresetLowQuality];


    exportSession.outputURL = [NSURL fileURLWithPath:[[ShowDAO getUserDocumentDir] stringByAppendingString:exportFilename]];
    exportSession.outputFileType = AVFileTypeQuickTimeMovie;

    CMTime start = CMTimeMakeWithSeconds(0, 1);
    CMTime duration = CMTimeMakeWithSeconds(1000, 1);
    CMTimeRange range = CMTimeRangeMake(start, duration);
    exportSession.timeRange = range;

    [exportSession exportAsynchronouslyWithCompletionHandler:^{
        switch ([exportSession status]) {
            case AVAssetExportSessionStatusCompleted:
                NSLog(@"Export Completed");
                break;
            case AVAssetExportSessionStatusFailed:
                NSLog(@"Export failed: %@", [[exportSession error] localizedDescription]);
                break;
            case AVAssetExportSessionStatusCancelled:
                NSLog(@"Export cancelled");
                break;
            default:
                break;
        }


    }];

    while(exportSession.progress != 1.0){
        NSLog(@"loading... : %f",exportSession.progress);
        sleep(1);
    }
    [exportSession release];

}



Best Answer-推荐答案


while(exportSession.progress != 1.0){
    NSLog(@"loading... : %f",exportSession.progress);
    sleep(1);
}

这个while循环阻塞了主线程。 NSLog 可能无法正常触发。不使用 while 循环试试?

关于ios - AVAssetExportSession 进度卡在 ipad 上但不在模拟器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7702977/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4