私のアプリでは、ユーザーはビデオを録画できます。彼らはビデオを記録した後、配列に追加され、サムネイルでテーブルビューに配置され、ビデオを選択して見ることができます。しかし、私はビデオを記録し、それがテーブルビューに行く場合、私はアプリの終了後にビデオがなくなった。ビデオとそのサムネイルをアプリのディレクトリに保存して取得する
ビデオをユーザーのカメラロールに保存せずに保存し、後で再びアプリケーションを開いたときに取得する最もよい方法は何ですか。コアデータについては読んだが、推奨されていないと聞いた。そうするより良い方法はありますか?
誰かが私にこのことを説明してもらえますか?私はディレクトリを扱うのが非常に悪いです。私はほとんど経験していません。
私はここで、このファイルの場所にビデオを録画:
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に保存されたファイルがそこに保存されます。 –