我正在使用UIActivityViewController处理分享视频,并对从PHAsset对象中提取网址有一些疑问。
我在“PHImageManager”中使用“requestAVAsset”并将AVAsset对象强制转换为AVURLAsset以访问其url属性。我尝试了以下类型的活动:
我的问题:
共享内容的代码(在UIViewController中):
PHImageManager.default().requestAVAsset(forVideo: videoAsset, options: nil, resultHandler: {
(asset: AVAsset?, audioMix: AVAudioMix?, info: [AnyHashable: Any]?) in
if let urlAsset = asset as? AVURLAsset {
print("Share url=\(urlAsset.url.absoluteURL)")
let shareVC: UIActivityViewController = UIActivityViewController(activityItems: [urlAsset.url.absoluteURL], applicationActivities: nil)
shareVC.completionWithItemsHandler = {
(type: UIActivityType?, completed: Bool, returnedItems: [Any]?, err: Error?) in
print("Share result: completed=\(completed), \(type)")
if err != nil {
print("\(err.debugDescription)")
}
}
DispatchQueue.main.async {
self.present(shareVC, animated: true, completion: nil)
}
}
})
环境:iPhone 7 plus,iOS 10.1.1
不过,我还尝试了另外两种方法进行分享。这些方法运行正常。在我看来,这是因为视频文件可以通过提取的URL直接访问。但是它们不适合我,因为我不仅要分享单个文件,还要在一个动作中共享多个文件。 (他们需要时间来处理数据)