在我的应用程序中,允许用户录制视频。在他们录制视频后,他们被追加到一个数组中,并用缩略图放在一个表视图上,以便他们可以选择视频并观看它。但是,如果我录制视频并进入桌面视图,则在退出应用程序后视频消失。保存和检索视频及其缩略图到应用程序的目录
什么是保存视频的最佳方式,而不必将其保存到用户相机胶卷,并在以后再次打开应用时检索它。我阅读了核心数据,但听说它不被推荐。有没有更好的方法来做到这一点?
有人可以向我解释这一点,我很难处理目录。我几乎没有任何经验。
我录制视频到这里这个文件位置:
self.movieFileOutput.startRecording(toOutputFileURL: URL(fileURLWithPath:self.videoFileLocation()), recordingDelegate: self)
func videoFileLocation() -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .long
dateFormatter.timeStyle = .long
let date = dateFormatter.string(from: Date())
return NSTemporaryDirectory().appending("videoFile\(date)")
}
一旦视频完成录制,我将其追加到该数组。
var videosArray: [URL] = [URL]()
然后我得到的每个视频的使用这种方法的缩略图:
func getThumbnail(_ outputFileURL:URL) -> UIImage {
let clip = AVURLAsset(url: outputFileURL)
let imgGenerator = AVAssetImageGenerator(asset: clip)
let cgImage = try! imgGenerator.copyCGImage(
at: CMTimeMake(0, 1), actualTime: nil)
let uiImage = UIImage(cgImage: cgImage)
return uiImage
}
我然后将其附加到这个阵列的位置:
var thumbnails = [UIImage]()
怎样才能让这些视频和它们的缩略图在用户退出应用程序时不会消失。我真的需要帮助,因为我非常沮丧。
的最好方式是将它们保存到:
- 用户默认
- CoreData
- 从目录
- 或其他任何建议直接检索它们你可能有。
你能告诉我最好的方法,并告诉我如何做到这一点。我需要一个详细的答案。谢谢。
我很欣赏这一点。我不明白你的意思是把它们存储为相对而非绝对的。你能过去吗? –
它似乎即使我保存在coredata的url,该文件不存在了,当我重新启动应用程序。这就是你为什么建议一个相对文件的URL。我不确定如何使用它。 –
当您重新启动应用程序时,保存在NSDocumentDirectory中的文件应该在那里。 –