Я работаю над AssetsPickerController
в Swift
, чтобы выбрать несколько Videos
из Device gallery
.
Проблема: Когда я выбираю несколько Videos
или иногда один video
, иногда мой App
падает из-за пустого Video Asset
. Это происходит 5-10 раз из 100 раз тестирования.
Код:
@IBAction func openAssetsAction(_ sender: UIButton) {
let rootListAssets = AssetsPickerController()
rootListAssets.didSelectAssets = {(assets: Array<PHAsset?>) -> () in
for i in 0..<assets.count {
let myPHAsset = assets[i]
let options = PHVideoRequestOptions()
options.deliveryMode = .highQualityFormat
options.isNetworkAccessAllowed = true
options.progressHandler = { (progress, error, stop, info) in
print("progress: \(progress)")
}
PHImageManager.default().requestAVAsset(forVideo: myPHAsset!, options: options, resultHandler: { (asset, audioMix, info) in
if let urlAsset = asset as? AVURLAsset {
let localVideoUrl = urlAsset.url
print(localVideoUrl)
}
})
}
}
let navigationController = UINavigationController(rootViewController: rootListAssets)
present(navigationController, animated: true, completion: nil)
}
Я приложил все усилия, чтобы найти аналогичную проблему в StackOverFlow, и получил несколько, они предлагают использовать isNetworkAccessAllowed
, но после установки isNetworkAccessAllowed
все равно я получаю ноль Asset
.