8

ライブフォトからビデオ部分を抽出する方法を見つけた人はいますか? Live Photos を GIF に変換するアプリに取り組んでいます。最初のステップは、Live Photos からビデオ ファイルを取得することです。携帯電話を Mac に接続すると、画像と動画のファイルが別々に表示されるため、これは可能であるように思われます。抽出プロセスでレンガの壁にぶつかりました。それを行うために多くの方法を試しましたが、すべて失敗しました。

私が最初に行ったのは、次のようにして、Live Photo のビデオ部分であると思われる 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 {

PHAsset を AVAsset に変換するには、次のことを試しました。

    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 を使用したデバッグ出力で 0 が返されるため、これは機能しないと思います。「.mov」を追加せずに試してみましたが、まだ機能しません。

私も試しました:

    PHImageManager.defaultManager().requestAVAssetForVideo(asset, options: nil, resultHandler: { (avAsset, audioMix, info) -> Void in
        debugPrint(avAsset)
    })

また、 debugPrint(avAsset) は nil を出力するため、機能しません。

私が手に入れた PHAsset はまだ Live Photo であり、実際にはビデオではないように見えるので、彼らがそれを不可能にしたのではないかと心配しています。

4

3 に答える 3

16

を使用して、PHAssetResourceManagerからビデオ ファイルを取得しますPHAssetResource

PHAssetResourceManager.defaultManager().writeDataForAssetResource(assetRes, 
    toFile: fileURL, options: nil, completionHandler: 
  {
     // Video file has been written to path specified via fileURL
  }

注: Live Photo 固有の API は iOS 9.1 で導入されました。

于 2015-10-07T06:39:41.753 に答える
-2

うっかりしてしまいました。Windowsのようなファイルマネージャーを備えたGoodreader(アプリストアで入手可能)と呼ばれるiosアプリがあります。ライブ写真をインポートすると、jpg ファイルと mov ファイルを含む .pvt で終わるフォルダーとして保存されます。注意点が 1 つだけあります。「goodreader にインポート」オプションを表示するには、写真アプリからではなく、自分自身または他の誰かにライブ写真を送信した後、メッセージ アプリ内からライブ写真を開く必要があります。

于 2016-10-13T23:55:21.160 に答える