Как я могу сохранить CMTime в UserDefaults, а затем проанализировать его? - PullRequest
0 голосов
/ 06 января 2019

Хорошо, я пытаюсь запомнить currentTime () из AVPlayer в памяти устройства, чтобы продолжить воспроизведение видео после перезапуска приложения.

Я делаю приложение для просмотра фильмов с моего Raspberry PI. Есть идеи?

1 Ответ

0 голосов
/ 06 января 2019

Вот расширение 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")
    }
}
...