UIImagePickerController 没有 return iOS 中的实时照片 13
UIImagePickerController doesn't return a live photo in iOS 13
我的代码在 iOS 13 中停止工作。在我的 UIImagePickerController 委托中,我查看返回的媒体类型(用户选择的类型)是否是实时照片。如果是,我使用 .livePhoto
键获取 PHLivePhoto。这曾经有效。但在 iOS 13 中,此键的值始终为 nil
。如何获取用户选择的实时照片?
我认为这种行为变化是一个错误。但是,如果你有权限访问用户的照片库,你可以使用.phAsset
值,一个PHAsset,自己直接从照片库中获取对应的PHLivePhoto。
let asset = info[.phAsset] as? PHAsset
if let style = asset?.playbackStyle {
switch style {
case .livePhoto:
// hmm, I'm getting .livePhoto but live _is_ nil!
if live != nil {
self.showLivePhoto(live!)
} else {
print("live is nil!")
// well then I'll fetch it myself, said the little red hen
if let asset = asset {
PHImageManager.default().requestLivePhoto(
for: asset, targetSize: self.redView.bounds.size,
contentMode: .aspectFit, options: nil) {
photo, info in
if let photo = photo {
self.showLivePhoto(photo)
}
}
}
}
// ... other cases ...
@unknown default: fatalError()
}
}
我的代码在 iOS 13 中停止工作。在我的 UIImagePickerController 委托中,我查看返回的媒体类型(用户选择的类型)是否是实时照片。如果是,我使用 .livePhoto
键获取 PHLivePhoto。这曾经有效。但在 iOS 13 中,此键的值始终为 nil
。如何获取用户选择的实时照片?
我认为这种行为变化是一个错误。但是,如果你有权限访问用户的照片库,你可以使用.phAsset
值,一个PHAsset,自己直接从照片库中获取对应的PHLivePhoto。
let asset = info[.phAsset] as? PHAsset
if let style = asset?.playbackStyle {
switch style {
case .livePhoto:
// hmm, I'm getting .livePhoto but live _is_ nil!
if live != nil {
self.showLivePhoto(live!)
} else {
print("live is nil!")
// well then I'll fetch it myself, said the little red hen
if let asset = asset {
PHImageManager.default().requestLivePhoto(
for: asset, targetSize: self.redView.bounds.size,
contentMode: .aspectFit, options: nil) {
photo, info in
if let photo = photo {
self.showLivePhoto(photo)
}
}
}
}
// ... other cases ...
@unknown default: fatalError()
}
}