2017-06-03 12 views
1

iOSアプリから動画を書き出し、アセットIDを取得する必要があります。過去には、あなたはALAssetsLibrary使用することができます。ビデオをカメラロールに保存してアセットURLを取得するにはどうすればいいですか?

save image in camera roll and get asset url

をしかし、それは今では非推奨です。私は今これを達成するための新しい方法は何だろうか?ありがとう!

答えて

0

ALAssetsLibraryは推奨されていません。 PhotosLibraryを使うべきです。

アセットライブラリのフレームワークは、iOS 9.0以降では廃止されました。その代わりに、代わりにPhotosフレームワークを使用してください.iOS 8.0以降では、ユーザーの写真ライブラリを使用するための機能とパフォーマンスが向上しています。詳細については、「写真」を参照してください。 Photosフレームワークでは、PHPhotoLibraryクラスはフォトライブラリのアクセスと変更を管理し、PHAssetクラスとPHCollectionクラスのクラスメソッドおよび関連クラスは、写真とビデオのアセットを検索するための機能を提供します。

ここでこのhttps://developer.apple.com/documentation/photos/phphotolibrary

はカメラロールにビデオを保存し、保存した映像にあなたのURLを与えるサンプルコードで参照してください。

var placeHolder : PHObjectPlaceholder? 
PHPhotoLibrary.shared().performChanges({ 

    let creationRequest = PHAssetChangeRequest.creationRequestForAssetFromVideo(atFileURL: URL(string: videoPath)!) 
    placeHolder = creationRequest?.placeholderForCreatedAsset 

    }, completionHandler: { (success, error) in 
     if success { 

      let result = PHAsset.fetchAssets(withLocalIdentifiers: [placeHolder!.localIdentifier], options: nil) 
      result.firstObject?.getURL(completionHandler: { url in 

       // this is the url to the saved asset 

      }) 
     } 
}) 

import Photos 

ことを忘れてはいけないとPHAssetの拡張として、このコードを追加します。

https://gist.github.com/jVirus/2f041bb8b1936093773f0bde42af3a49

関連する問題