Hat jemand herausgefunden, wie man den Videoanteil von einem Live Photo extrahiert? Ich arbeite an einer App, um Live-Fotos in ein GIF zu konvertieren, und der erste Schritt besteht darin, die Videodatei von Live Photo zu erhalten. Es scheint, dass es möglich sein sollte, denn wenn Sie Ihr Telefon an einen Mac anschließen, können Sie die separaten Bild- und Videodateien sehen. Ich bin beim Extraktionsprozess in eine Ziegelmauer gerannt, und ich habe viele Möglichkeiten ausprobiert, und alle versagen.Videoabschnitt von Live Photo extrahieren
Das erste, was ich war für eine PHAsset erhalten tat, was ich denke, ist der Video-Teil des Live Photos, indem Sie folgendermaßen vorgehen:
if let livePhoto = info["UIImagePickerControllerLivePhoto"] as? PHLivePhoto {
let assetResources = PHAssetResource.assetResourcesForLivePhoto(livePhoto)
for assetRes in assetResources {
if (assetRes.type == .PairedVideo) {
let assets = PHAsset.fetchAssetsWithLocalIdentifiers([assetRes.assetLocalIdentifier], options: nil)
if let asset = assets.firstObject as? PHAsset {
Um die PHAsset zu einem AVAsset konvertiert ich versucht habe:
asset.requestContentEditingInputWithOptions(nil, completionHandler: { (contentEditingInput, info) -> Void in
if let url = contentEditingInput?.fullSizeImageURL {
let movieUrl = url.absoluteString + ".mov"
let avAsset = AVURLAsset(URL: NSURL(fileURLWithPath: movieUrl), options: nil)
debugPrint(avAsset)
debugPrint(avAsset.duration.value)
}
})
ich glaube nicht, diese funktioniert, weil der Debug-Druck mit dem duration.value 0 gibt habe ich auch ohne die „.mov“ außerdem versucht und es funktioniert immer noch nicht.
ich auch versucht:
PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: { (avAsset, audioMix, info) -> Void in
debugPrint(avAsset)
})
Und die debugPrint (avAsset) druckt nil so funktioniert es nicht.
Ich habe irgendwie Angst, dass sie es unmöglich gemacht haben, es scheint, als würde ich im Kreis gehen, da es scheint, dass das PHAsset immer noch ein Live-Foto und eigentlich kein Video ist.
Dies funktioniert nur mit 9.1, Haben Sie eine allgemeinere Lösung? – Idan
Die Live Photo-spezifischen APIs wurden in iOS 9.1 eingeführt – Hendrik