我有一个收藏视图,可以在全屏的每个单元格上播放短视频(3-5秒)。第一个单元需要大约4秒钟的加载时间,但接下来的单元加载速度更快。用户体验非常差,因为该应用一开始似乎被冻结。
我尝试了不同的方法,但到目前为止结果是相同的。我试图在每个单元实例内以及从willForDisplay中的cellForItemAt播放视频。对于视频播放器,我正在使用一个名为SwiftVideoBackground的库。我也尝试过使用AVPlayer播放视频,以及thread所说的话。
每个单元格都有一个按钮来播放另一个视频,这也需要大约3秒钟来加载。
我正在使用AWSCloudFront从Amazon AWS S3流视频文件
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if let cell = cell as? UserFeedCollectionViewCell {
cell.videoBackground.play(view: cell.videoPlayer, url: cell.contentUrl, isMuted: false)
cell.videoBackground.restart()
}
在UserFeedCollectionViewCell内部:
@IBAction func playVideoBtnPressed(_ sender: Any) {
videoBackground.pause()
videoBackground.play(view: videoPlayer, url: contentAUrl)
videoBackground.restart()
}