在Instagram中打开AVMutableComposition时的白色video

导出AVMutableComposition我使用PHPhotoLibrary将video保存到相机胶卷。 在creationRequestForAssetFromVideoAtFileURL:完成处理程序中,我然后在Instagram中打开已保存的video,如下所示:

 __block PHObjectPlaceholder *videoAssetPlaceholder; [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ PHAssetChangeRequest *req = [PHAssetChangeRequest creationRequestForAssetFromVideoAtFileURL:localVideoURL]; videoAssetPlaceholder = req.placeholderForCreatedAsset; } completionHandler:^(BOOL success, NSError *error) { if (success) { completion(YES); NSString *localID = videoAssetPlaceholder.localIdentifier; NSRange rangeOfSlash = [localID rangeOfString:@"/"]; if (rangeOfSlash.location != NSNotFound) { NSString *assetID = [localID substringToIndex:rangeOfSlash.location]; NSURL *instagramURL = [NSURL URLWithString:[NSString stringWithFormat:@"instagram://library?AssetPath=%@", assetID]]; if ([[UIApplication sharedApplication] canOpenURL:instagramURL]) { [[UIApplication sharedApplication] openURL:instagramURL]; } } } }]; 

Instagram打开的时间大约有50%,video播放时间与预期相符。 然而,另外50%的时间,video和预览都是白色的,而我得到的只是声音。 这通常通过选择另一个video然后返回到我的video来解决。 video在相机胶卷中完美播放,只有Instagram会导致问题。 这是Instagram有问题还是我可能以错误的方式导出我的video的问题?

这些是我的AVAssetExportSession设置:

 AVAssetExportSession *exporter = [[AVAssetExportSession alloc] initWithAsset:mixComposition presetName:AVAssetExportPresetHighestQuality]; exporter.outputURL = url; exporter.outputFileType = AVFileTypeMPEG4; exporter.shouldOptimizeForNetworkUse = YES; exporter.videoComposition = mainCompositionInst; [exporter exportAsynchronouslyWithCompletionHandler:^{ dispatch_async(dispatch_get_main_queue(), ^{ handler(exporter.outputURL); }); }]; 

刚从Apple DTS那里听说过。 他们也同意这一点指向Apple iOS错误并要求我记录它。

我删除了上面提到的AVAssetExportSession用法,它解决了我的问题作为一种解决方法。 所以这个问题似乎与你正在使用的Instagram方法中包含的方法有关。

因此,在Apple修复此问题或Instagram构建解决方案之前,似乎没有解决此问题的方法……糟糕