ライブ写真からビデオ部分を抽出する方法を知りましたか?ライブフォトをGIFに変換するアプリを開発しています。最初のステップは、ライブフォトからビデオファイルを取得することです。あなたがMacにあなたの携帯電話を接続すると、あなたは別の画像とビデオファイルを見ることができるので、それが可能であるように思われる。私はちょうど抽出プロセスでレンガの壁にぶつかったし、私はそれを行うために多くの方法を試してみて、それらはすべて失敗する。ライブフォトからビデオ部分を抽出
私が最初にすることは、次の操作を実行して、私はLiveフォトの映像部分だと思う何のためにPHAssetを取得しました:
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 {
を私が試したAVAssetにPHAssetを変換するには:
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)
}
})
私はduration.valueとデバッグプリントは、私も「.MOV」を添加せずに試してみた、それはまだ動作しません0 を与えるので、この1つは機能しないと思います。
私も試してみました:それは動作しませんので
PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: { (avAsset, audioMix, info) -> Void in
debugPrint(avAsset)
})
とdebugPrint(avAsset)はnilを出力します。
私はそれが不可能になってしまった可能性があることを恐れています.PHAssetのように見えるので、私はサークルに行っているようです。
これは9.1でのみ動作します。もっと一般的な解決策はありますか? – Idan
ライブフォト向けのAPIは、iOS 9.1で導入されました – Hendrik