2016-05-03 8 views
0

Ich habe eine. MOV-Datei und eine JPG-Datei. Wenn ich versuche, ein Live Photo zu machen:Wie macht man PHLivePhoto aus MOV-Datei?

func makeLivePhotoFromItems(imageURL: NSURL, videoURL: NSURL, previewImage: UIImage, completion: (livePhoto: PHLivePhoto) -> Void) { 
    PHLivePhoto.requestLivePhotoWithResourceFileURLs([imageURL, videoURL], placeholderImage: previewImage, targetSize: CGSizeZero, contentMode: PHImageContentMode.AspectFit) { 
     (livePhoto, infoDict) -> Void in 
     print("info: \(livePhoto)") 

     if let lp = livePhoto { 
      completion(livePhoto: lp) 
     } 
    } 
} 

Und wie diese machen:

makeLivePhotoFromItems(url, videoURL: movURL, previewImage: UIImage(named: "preview")!) { (livePhoto) in 

    } 

seine Arbeit nicht. Live-Foto nicht erstellen und Konsole schreibt:

info: Optional(<PHLivePhoto: 0x10077f660>) 
complete 
info: Optional(<PHLivePhoto: 0x10143ef30>) 
complete 
2016-05-03 13:23:18.191 LivePhoto[2170:982987] Error: Invalid video metadata 
info: nil 

Ich bin wirklich Hoffnungen, dass Sie mir helfen können.

+0

Der [Originalcode] (http://stackoverflow.com/questions/33990830/working-with-live-photos-in-playground) funktioniert gut. Ich würde also sagen, dass Ihr Problem aus dem Video selbst und nicht aus dem Code stammt. In der Tat sehen wir "Ungültige Video-Metadaten". Das Problem ist also Ihr Video. – Moritz

+0

@EricD ja, ich denke schon. Es kann Videoproblem sein. aber ich versuche, ungefähr 5 Filme mit verschiedenen Formaten zu verwenden. Dieser Fehler verschwindet nicht. Wie kann ich es debuggen? – HadevsCode

+0

Damit ein MOV in einem LivePhoto verwendet werden kann, muss er dieselben Spezifikationen haben (maximale Größe, Kodierung usw.) wie die von Apple. Mein Vorschlag ist, ein MOV * von einem vorhandenen LivePhoto zu nehmen und seine Eigenschaften zu überprüfen, dann deine ähnlich zu machen. – Moritz

Antwort

0

Die Image- und MOV-Datei muss denselben Bezeichner haben (NSString * AssetIdentifier = [[NSUUID UUID] UUIDString]), und der Schlüssel für MOV in Metadaten muss @ "com.apple.quicktime.content.identifier"

lauten