Nachdem ich einen AVMutableComposition
exportiere, verwende ich PHPhotoLibrary
, um das Video in der Kamerarolle zu speichern. Im creationRequestForAssetFromVideoAtFileURL:
Abschluss-Handler, öffne ich dann das gespeicherte Video in Instagram, etwa so:Weißes Video beim Öffnen von AVMutableComposition in 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];
}
}
}
}];
Etwa 50% der Zeit Instagram wird geöffnet und das Video spielt wie erwartet. Die anderen 50% der Zeit, aber das Video und die Vorschau ist weiß, und alles, was ich bekomme, ist der Ton. Dies wird normalerweise behoben, indem Sie ein anderes Video auswählen und dann zu meinem Video zurückkehren. Das Video spielt perfekt in der Kamera, es ist nur Instagram, das Probleme verursacht. Ist das ein Problem, das Instagram hat oder könnte ich meine Videos falsch exportieren?
Das sind meine AVAssetExportSession
Einstellungen:
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);
});
}];
Daniel, ich denke, dass wir die gleiche Wal Jagd sind. [Meine Frage] (http://stackoverflow.com/questions/39560386/avplayer-playback-fails-while-avassexportsession-is-active-as-of-ios-10) –
Haben Sie eine Lösung? Ich dachte, dass die AVAssetExportSession aktiv sein musste, während ich die Wiedergabe startete, aber es scheint sogar zu passieren, nachdem es beendet ist. Dachte, wenn Sie es sofort nach dem Start abbrechen, scheint das Problem nicht zu passieren. –
@AndresCanella Ich habe noch keine Lösung dafür gefunden. Da ich das Problem nur beim Exportieren auf Instagram gesehen habe, kann ich mich vielleicht an sie wenden, um zu sehen, ob das ein bekannter Bug ist oder nicht. Aber ja, es scheint definitiv, dass unsere Fragen denselben Ursprung haben. –