Как я могу сохранить CMTime в UserDefaults, а затем проанализировать его?
Ну, я пытаюсь запомнить currentTime() из AVPlayer в памяти устройства, чтобы продолжить воспроизведение видео после перезапуска приложения.
Я делаю приложение для просмотра фильмов с моего Raspberry PI. Есть идеи?
1 ответ
Решение
Вот расширение UserDefaults, которое позволяет вам сохранять и восстанавливать CMTime
значение:
import CoreMedia
extension UserDefaults {
func cmtime(forKey key: String) -> CMTime? {
if let timescale = object(forKey: key + ".timescale") as? NSNumber {
let seconds = double(forKey: key + ".seconds")
return CMTime(seconds: seconds, preferredTimescale: timescale.int32Value)
} else {
return nil
}
}
func set(_ cmtime: CMTime, forKey key: String) {
let seconds = cmtime.seconds
let timescale = cmtime.timescale
set(seconds, forKey: key + ".seconds")
set(NSNumber(value: timescale), forKey: key + ".timescale")
}
}