AVMutableComposition
をエクスポートした後、PHPhotoLibrary
を使用してビデオをカメラロールに保存します。 Instagramのが開くと期待されるように、ビデオの再生回数のInstagramでAVMutableCompositionを開くときの白いビデオ
__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];
}
}
}
}];
約50%:creationRequestForAssetFromVideoAtFileURL:
完了ハンドラでは、私はそのようにように、Instagramの中に保存された映像を開きます。しかし、残りの50%は、ビデオとプレビューの両方が白で、私が得るのは音です。これは通常、別の動画を選択してから自分の動画に戻って修正されます。ビデオはカメラロールで完全に再生され、問題を引き起こすInstagramだけです。これはInstagramが持っている問題か、私のビデオを間違った方法でエクスポートすることができますか?
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);
});
}];
ダニエルは、私たちは同じクジラを狩りていると思います。 [私の質問](http://stackoverflow.com/questions/39560386/avplayer-playback-fails-while-avassetexportsession-is-active-as-of-ios-10) –
解決策はありますか?再生を開始している間はAVAssetExportSessionがアクティブでなければならないと思っていましたが、終了後にAVAssetExportSessionが起きているようです。それが起こったようではない問題が始まるとすぐにキャンセルすると思っています。 –
@AndresCanella私はこれについての解決策をまだ見つけていません。 Instagramにエクスポートするときに問題が発生しただけなので、これが既知のバグかどうか確認することができます。しかし、はい、間違いなく私たちの質問は同じ起源であるようです。 –