A Live Photo is a paired camera photo ("key photo") and video recording ("paired video"). Learn more about Live Photos from our in-depth blog post.
A Live Photo consists of two resources paired using an asset identifier (a UUID string):
- JPEG image with special metadata for
kCGImagePropertyMakerAppleDictionary
with[17 : assetIdentifier]
- Quicktime MOV with
- Quicktime metadata for
["com.apple.quicktime.content.identifier" : assetIdentifier]
- Timed metadata track with
["com.apple.quicktime.still-image-time" : 0xFF]
. This lets the system know where the still image sits in the movie timeline.
- Quicktime metadata for
The entire library is contained in the LivePhoto.swift
file:
LivePhoto.extractResources(from: livePhoto, completion: resources -> Void) {
let pairedImageURL = resources.pairedImageURL
let pairedVideoURL = resources.pairedVideoURL
}
LivePhoto.generate(from: photoURL, videoURL: videoURL, progress: { percent in }, completion: { livePhoto, resources in
// Display the Live Photo in a PHLivePhotoView
livePhotoView.livePhoto = livePhoto
// Or save the resources to the Photo library
LivePhoto.saveToLibrary(resources)
})