【问题标题】:Video freezing in iphone 6 swift 4.2iphone 6 swift 4.2中的视频冻结
【发布时间】:2018-12-04 06:53:28
【问题描述】:

我已经拍摄了 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)
        }
    })
}

【问题讨论】:

    标签: ios swift xcode uiimagepickercontroller ios12


    【解决方案1】:

    您应该在后台队列而不是主队列中执行此操作。并且不要对选项使用强制解包,而是使用guardif 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)
        }
    }
    

    【讨论】:

    • 好的@kamran。我会检查并通知您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-18
    • 2014-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多