Open Arlexovincy opened 6 days ago
@Arlexovincy
如果我没有记错的话,从网络下载的 Live Photo 应该是分成静态 image (HEIC) 和一个视频 (MOV) 的,所以下载和缓存也许要分别处理。能分享一些你们使用 Live Photo 的实际场景么(比如你们的 Live Photo 的来源,以及server是如何下发这些资源的),这样可能可以对设计更合理的API有所帮助。
感谢。
@onevcat
非常感谢作者百忙之中回复。 我们正在做一个情绪治愈类的App,记录瞬间所思所想。类社交App。我们的使用场景是这样的: 1、我们的用户可以在我们的app上发布帖子记录,帖子里面有多张图片,我们目前仅支持gif和png,jpg等图片,但是我们希望同时支持Live Photo。我们的图片目前的容器载体是collectionview,cell中的UIImageView显示。 2、如果支持Live Photo,我们会从相册里获取,然后把Live Photo分离成一张图片和一个人MOV格式的视频,都放在我们的OSS存储服务器上,并且我们能够获取相应的链接。 3、如何支持Live Photo后,如果可能,希望我们的kingfisher能够自动帮我们缓存相应的文件,并且设计出一个View,改UIview可以根据URL的参数来判断是gif、png、还是Live Photo,然后来进行使用评估不同类型的容器(UIImageView、Live PhotoView)显示,Live Photo还希望开发者能够手动控制播放功能。
再次非常感谢作者的回复,期待我们的kingfisher的下个版本更新。
依据 URL 或者甚至 response data 来决定内部使用的 view 这件事情,相对来说超出了 Kingfisher 的最初设计目标。
可能可以考虑为 PHLivePhotoView
添加一组类似 kf
的 extension 方法来快速下载/缓存资源和设置图片。对应地,在你们 app 中 server 应该持有“某张图片是 Live Photo” 的信息:在 Collection View 的 cell 中使用 UIImageView
加载普通图片(以及 live photo 的 badge),在点击 Live Photo 所在 cell 后的 detail 页面中,再使用 PHLivePhotoView
和新加的图片设置方法,可能不论从使用逻辑,消耗的流量,和 Kingfisher 本身的改动难度上权衡,都相对是更合理的选择。
您怎么看?
当然..如果确实有需要在 Cell 里就混杂着显示 Live Photo 的话,也可以考虑通过向 server 请求 URL 的时候,让 server 的返回里带上对应图片是 Live Photo 的 metadata,这样就可以在创建 cell 时直接选择使用 UIImageView
还是 PHLivePhotoView
。
@onevcat
我觉得这个方案非常不错,也很适合当前kingfisher的设计的一致性。
非常期待这个版本的到来,谢谢!
当然..如果确实有需要在 Cell 里就混杂着显示 Live Photo 的话,也可以考虑通过向 server 请求 URL 的时候,让 server 的返回里带上对应图片是 Live Photo 的 metadata,这样就可以在创建 cell 时直接选择使用
UIImageView
还是PHLivePhotoView
。
这个问题都不大,只要我和服务端约定好协议,就可以区分了
Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.
Issue Description
作者有考虑兼容livePhoto的显示吗?自己去处理LivePhoto的缓存与显示的问题非常复杂,自己有点力不从心,希望作者能考虑下,谢谢
What
[Tell us about the issue]
Reproduce
[The steps to reproduce this issue. What is the url you were trying to load, where did you put your code, etc.]
Other Comment
[Add anything else here]