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)
刚刚从 Apple DTS 获悉。他们也同意这是 Apple iOS 的一个 bug,并要求我记录下来。
我删除了AVAssetExportSession
上面提到的类似方法的使用,它解决了我的问题作为解决方法。所以问题似乎与该方法有关,该方法可能包含在您正在使用的 Instagram 方法中。
因此,在苹果解决这个问题或 Instagram 建立解决方案之前,这个问题似乎没有解决方案......
归档时间: |
|
查看次数: |
208 次 |
最近记录: |