からサムネイル:スウィフト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(文字列:ファイルパス)、しかし運もありません。
動画を撮影した直後に機能します。あなたがアプリを開いてから再び失敗するまで...
パスはどこですか?ドキュメントフォルダにありますか?絶対に保管して再使用しないでください。アプリのサンドボックスが変更される可能性があります。 – rmaddy
これは生成するURLです(すでに絶対パスは削除されています): file:/// private/var/mobile/Containers/Data/Application/4280210D-6479-4036-AF5C-E9005070F57C/tmp/51473631576__912FB214-4D3A- 4A0C-A5D4-D6F166D1DC06.MOV – AndrewH