Có ai đã tìm ra cách trích xuất phần video từ Live Photo không? Tôi đang làm việc trên một ứng dụng để chuyển đổi Live Photos thành GIF, và bước đầu tiên là lấy tệp video từ Live Photo. Có vẻ như nó sẽ là có thể, bởi vì nếu bạn cắm điện thoại vào máy Mac, bạn có thể thấy các tập tin hình ảnh và video riêng biệt. Tôi đã chạy vào một bức tường gạch trong quá trình khai thác, và tôi đã thử nhiều cách để làm điều đó và tất cả đều thất bại.Trích xuất phần video từ Live Photo
Việc đầu tiên tôi làm là có được một PHAsset cho những gì tôi nghĩ là phần video của Live Photo, bằng cách làm như sau:
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 {
Để chuyển đổi các PHAsset một AVAsset Tôi đã thử:
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)
}
})
tôi không nghĩ rằng một trong các công trình này vì in debug với duration.value cho 0. tôi cũng đã cố gắng mà không có sự "mov" Ngoài ra và nó vẫn không hoạt động.
Tôi cũng đã cố gắng:
PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: { (avAsset, audioMix, info) -> Void in
debugPrint(avAsset)
})
Và debugPrint (avAsset) in bằng không vì thế nó không hoạt động.
Tôi lo sợ rằng họ có thể đã làm cho nó không thể làm được, có vẻ như tôi đang đi trong vòng kết nối vì có vẻ như PHAsset tôi nhận vẫn là Ảnh sống và không thực sự là video.
Chỉ hoạt động với 9.1, Bạn có giải pháp tổng quát hơn? – Idan
API cụ thể của Live Photo được giới thiệu trong iOS 9.1 – Hendrik