视频冻结在iphone 6 swift 4.2中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视频冻结在iphone 6 swift 4.2中相关的知识,希望对你有一定的参考价值。

我已经捕获视频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)
        }
    })
}
答案

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

以上是关于视频冻结在iphone 6 swift 4.2中的主要内容,如果未能解决你的问题,请参考以下文章

从收藏视图切换视频时,Swift 播放器冻结但音频仍然在后台运行

如果我将音频设置为 true,则 Safari for Iphone 和 Ipad self video 会冻结

WebRTC 远程视频在 ios Safari 上一直冻结

iPhone 6 支持 BLE 4.2,但没有示例

使用 PromiseKit 6 在 Swift 4.2 中缓存

适用于 Unity 的 Agora 视频 SDK 正在冻结 AR 摄像头