在Instagram中打开AVMutableComposition时的白色视频

Dan*_*son 6 ios avmutablecomposition instagram avassetexportsession instagram-api

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

__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];
            }
        }
    }
}];
Run Code Online (Sandbox Code Playgroud)

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

这些是我的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);
    });
}];
Run Code Online (Sandbox Code Playgroud)

And*_*lla 2

刚刚从 Apple DTS 获悉。他们也同意这是 Apple iOS 的一个 bug,并要求我记录下来。

我删除了AVAssetExportSession上面提到的类似方法的使用,它解决了我的问题作为解决方法。所以问题似乎与该方法有关,该方法可能包含在您正在使用的 Instagram 方法中。

因此,在苹果解决这个问题或 Instagram 建立解决方案之前,这个问题似乎没有解决方案......