前提・実現したいこと
URLからgif画像を取得して、ダウンロードしカメラロールに保存する機能を実装したいです。
iOS(xcode 12.2) swift5にて iphoneアプリの開発を行っています。
経緯を説明させていただくと、
もともとALAssetsLibraryを使って以下のコードで実装していました。
これは、現状、実装がうまくいっており、URLからgif画像を取得、正常にカメラロールに保存でき、gifアニメーションも動いています。
以下のコード
let gifurl = NSURL(string: "https://media3.giphy.com/media/X7s4uckfyihGJDrSpo/giphy.gif?cid=ecf05e470tbbc5baw8papsbrxogo1t3tfqfunrbt6aug51hb&rid=giphy.gif");
let lib = ALAssetsLibrary() let data2 = NSData(contentsOf: gifurl! as URL) lib.writeImageData(toSavedPhotosAlbum: data2 as Data?, metadata: nil) { (gifurl, err) in }
ただ、xcode的には、
ALAssetsLibraryのライブラリが廃止する方向のようで、
そのうち使えなくなることが予想されます。
ALAssetsLibraryを使用しないで、別の方法で実装したいと考えています。
■■機能を実装中に以下のエラーメッセージが発生しました。
xcodeの警告で PHPhotoLibrary を使いましょうと出ています。
そのため、 PHPhotoLibraryを使ったサンプルを検索して試したところ、
PHPhotoLibrary.shared().performChanges ({ let url = URL(fileURLWithPath: "your file path") PHAssetChangeRequest.creationRequestForAssetFromImage(atFileURL: gifurl as! URL) }) { saved, error in if saved { print("Your image was successfully saved") } }
ダウンロードが成功しません。
取得エラー(上記error)は
Optional(Error Domain=PHPhotosErrorDomain Code=-1 "(null)")
restrictWeb = 1;
です。
エラー内容調べてみました、詳しく記載しているサイトを見つけるに至りませんでした。
■■備考
UIImageWriteToSavedPhotosAlbumライブラリをつかうと
DL、保存は成功しますが、静止画として保存されます。
■■ご協力のお願い
英語サイト、いろいろ探してますが、 サンプル自体が多くなく、うまく見つけることができません。
PHPhotoLibraryを使わない方法でも
大丈夫なので、
どなたか、実装がうまくいった方、おりましたら、ご教授いただければ幸いでございます。
何卒、宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/21 10:24