2017-04-26 12 views
2

からサムネイル:スウィフト3:私は、コードを次しているスウィフト3のデバイスにローカル保存された動画からサムネイルを作成する必要がビデオ

func fetchFirstFrameOf(videoPath urlString: String) -> UIImage? { 
    let filePath = URL(fileURLWithPath: urlString).absoluteURL 

    let asset = AVURLAsset(url: filePath, options: nil) 
    let imgGenerator = AVAssetImageGenerator(asset: asset) 
    imgGenerator.appliesPreferredTrackTransform = false 

    do { 
     let cgImage = try imgGenerator.copyCGImage(at: CMTimeMake(0, 1), actualTime: nil) 
     let thumbnail = UIImage(cgImage: cgImage) 

     return thumbnail 

    } catch let error { 
     print("*** Error generating thumbnail: \(error)") 
     return nil 
    } 
} 

は今、これは私がビデオを撮影し、それを保存するときに動作します。しかし、私は、後の時点でアプリを再起動すると、何のサムネイルが表示されていないと、次のエラーがスローされます。

***エラー発生サムネイル:エラードメイン= NSURLErrorDomainコード= -1100「与えられたURLが上見つかりませんでしたこのサーバ」{ 『そのようなファイルやディレクトリをのUserInfo = NSLocalizedDescriptionがNSUnderlyingError = 0x170255990 {エラードメイン= NSPOSIXErrorDomainコード= 2、指定されたURLは、このサーバ上で見つかりませんでした=ん』}}

は、私はファイルパスを初期化しようとしましたこのように:URL(文字列:ファイルパス)、しかし運もありません。

動画を撮影した直後に機能します。あなたがアプリを開いてから再び失敗するまで...

+2

パスはどこですか?ドキュメントフォルダにありますか?絶対に保管して再使用しないでください。アプリのサンドボックスが変更される可能性があります。 – rmaddy

+0

これは生成するURLです(すでに絶対パスは削除されています): file:/// private/var/mobile/Containers/Data/Application/4280210D-6479-4036-AF5C-E9005070F57C/tmp/51473631576__912FB214-4D3A- 4A0C-A5D4-D6F166D1DC06.MOV – AndrewH

答えて

1

私は一時的なアドレスにアクセスしようとしていたと思っていました(URLのプライベートとtmpは私に連絡してください)

ビデオの作成を終了し、それをドキュメントディレクトリに移動しました。

関連する問題