Замораживание видео в iphone 6 swift 4.2 - PullRequest
0 голосов
/ 04 декабря 2018

Я записал видео в течение 5 секунд, и оно должно быть в зашифрованном виде в локальном хранилище приложения.Так что я использую каркас RNEncryptor для шифрования видео.Но иногда, когда я нажимаю кнопку «Использовать видео», приложение останавливается.проверьте мой код ниже для шифрования.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    DispatchQueue.main.async(execute: {
        let encryptData = try? RNCryptor.encrypt(data: data!, withPassword: "ABC123")
        do {
            try encryptData?.write(to: url!, options:.withoutOverwriting)
            self.encryptVideoData = encryptData as! NSData
            UserDefaults.standard.set(self.encryptVideoData, forKey: "passportVidKey")
        } catch { // handle error
            print(error)
        }
    })
}

1 Ответ

0 голосов
/ 04 декабря 2018

Вы должны выполнять это действие внутри фоновой очереди вместо основной очереди.И не используйте принудительную развёртку для опций, вместо этого безопасно разверните с помощью guard или if let.заявления.Ниже пример может помочь,

DispatchQueue.global(qos: .background).async {
    guard
        let data = data,
        let url = url,
        let encryptData = try? RNCryptor.encrypt(data: data, withPassword: "ABC123")
        else { return }
    do {
        try encryptData?.write(to: url, options:.withoutOverwriting)
        self.encryptVideoData = encryptData as! NSData
        UserDefaults.standard.set(self.encryptVideoData, forKey: "passportVidKey")
    } catch { // handle error
        print(error)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...