我正在制作一个像 ticktok 这样的应用程序,并使用 IGListKit 和 AVplayer 来播放视频。我缓存视频,然后显示和播放它,检查单元格是否占据了它应该开始播放的整个屏幕。这样做会有 500 毫秒的延迟,但它需要像 ticktok 一样流畅地工作。
在 scrollViewDidEndDecelerating 中使用以下代码,以便在滚动结束时检查占据集合视图整个屏幕的可见单元格
let collectionViewVisibleRect = getCollectionViewVisibleRect()
for visibleIndexPath in collectionView.indexPathsForVisibleItems {
if let cell = collectionView.cellForItem(at: visibleIndexPath) as? VideoFeedCollectionViewCell {
if collectionViewVisibleRect.contains(cell.frame) {
cell.queuePlayer?.play()
cell.imgPlay.isHidden = true
}else {
cell.queuePlayer?.pause()
}
}
}
直接从单元格播放时播放流畅,但同时播放多个视频。