AVPlayer在加载时冻结

时间:2018-02-14 22:15:40

标签: ios swift avplayer

我的应用似乎在加载时冻结了用户界面(猜测它在主线程上运行)。我遵循其他S.O答案的建议并使用loadValuesAsynchronously,但这似乎并没有帮助。任何想法为什么会发生?

DispatchQueue.global(qos: .background).async {
    let asset = AVURLAsset(url: self.URL, options: nil)
    asset.loadValuesAsynchronously(forKeys: ["duration"], completionHandler: { () -> Void in
        DispatchQueue.main.async {
            completion(asset)
        }
    })
}

//above completion calls: 
fileprivate func validateAsset(_ asset : AVURLAsset) -> Bool {
    var e: NSError?
    asset.statusOfValue(forKey: "duration", error: &e)
    if let error = e {
        print(error)
        return false
    }
    return true
}

当UI冻结时我创建了一个断点,它特别指向了这一行:

asset.statusOfValue(forKey: "duration", error: &e)

0 个答案:

没有答案