

以下のコードは、動画を選択し、一画面を静止画にしてカメラロールに保存するコードです。  
保存した画像のフルパスを取得したいです  
リンクに同じような内容があったので参考にさせてもらいましたが、スコープ内に見つかりません等のエラーが出ます。

[code]

    import UIKit
    import AVFoundation
    import Photos
    
    class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    
        var picker = UIImagePickerController()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
    
            // フォトライブラリーから動画を取得
            picker.sourceType = UIImagePickerController.SourceType.photoLibrary
            picker.mediaTypes = ["public.movie"]
            picker.delegate = self
            present(picker, animated: true, completion: nil)
        }
    
        func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){
            dismiss(animated: true, completion: nil)
    
            guard let videoURL = info[UIImagePickerController.InfoKey.mediaURL] as? URL else {
                return
            }
            let asset = AVAsset(url: videoURL)
            let generator = AVAssetImageGenerator(asset: asset)
            generator.appliesPreferredTrackTransform = true
            // 1秒毎にUIImageを生成
    
                let floatTime = Float64(1)
                let time = CMTimeMakeWithSeconds(floatTime, preferredTimescale: 10)
                let image = try? generator.copyCGImage(at: time, actualTime: nil)
    
            //タップイベントを追加
            let imageView = UIImageView(frame: self.view.frame)
            imageView.image = UIImage(cgImage:image!)
            print(asset.duration)
    
            imageView.isUserInteractionEnabled = true
                    imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.saveImage(_:))))
    
    
            imageView.frame = CGRect(x: 10, y: 100, width: view.frame.width - 20, height: (view.frame.width-20)*3/4)
    
            self.view.addSubview(imageView)
    
    
        }
    
        @objc func saveImage(_ sender: UITapGestureRecognizer) {
    
                //タップしたUIImageViewを取得
                let targetImageView = sender.view! as! UIImageView
                // その中の UIImage を取得
                let targetImage = targetImageView.image!
                //保存するか否かのアラート
                let alertController = UIAlertController(title: "保存", message: "この画像を保存しますか？", preferredStyle: .alert)
                //OK
                let okAction = UIAlertAction(title: "OK", style: .default) { (ok) in
                    //ここでフォトライブラリに画像を保存　(ここでパス取得？)
                    UIImageWriteToSavedPhotosAlbum(targetImage, self, #selector(self.showResultOfSaveImage(_:didFinishSavingWithError:contextInfo:)), nil)
                }
                //CANCEL
                let cancelAction = UIAlertAction(title: "CANCEL", style: .default) { (cancel) in
                    alertController.dismiss(animated: true, completion: nil)
                }
                //OKとCANCELを表示追加し、アラートを表示
                alertController.addAction(cancelAction)
                alertController.addAction(okAction)
                present(alertController, animated: true, completion: nil)
            }
         // 保存結果をアラートで表示
        @objc func showResultOfSaveImage(_ image: UIImage, didFinishSavingWithError error: NSError!, contextInfo: UnsafeMutableRawPointer) {
    
                var title = "保存完了"
                var message = "カメラロールに保存しました"
    
                if error != nil {
                    title = "エラー"
                    message = "保存に失敗しました"
                }
    
                let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
    
                // OKボタンを追加
                alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
    
                // UIAlertController を表示
                self.present(alert, animated: true, completion: nil)
            }
    
    }
    
[/code]

参考にしたサイト

<https://stackoverrun.com/ja/q/12649411>


CC BY-SA 4.0
2020-10-22T06:24:30.633
71414
2020-10-22T06:36:34.953
2020-10-22T06:36:34.953
18540
42431
question
xcode swift5 xcode12
カメラロールに保存した画像のフルパスを取得したい