【发布时间】:2016-05-08 16:31:00
【问题描述】:
我有一个UICollectionView,每个单元格都有一个AVPlayerLayer,它们都在同时播放视频。一次大约可以在屏幕上容纳 9 个单元格,而且非常滞后,因此我需要提高性能以实现平滑滚动的方法。我已经尝试过一些事情:
1) 每个单元格只有一个AVPlayer 实例。它不会被创建,而是在视频 url 更改时调用 player.replaceCurrentItemWithPlayer。
2) 因为我使用的是 ReactiveCocoa,所以跳过重复 url 以避免重复播放相同的视频是微不足道的。
我还能做些什么来加快滚动和性能?
【问题讨论】:
-
请记住,不播放项目的 AVPlayer 不会占用资源,只有在播放之后才会占用资源。要减少资源使用/内存消耗,请将 AVPlayer 的播放器项目设置为 nil。
-
这是我最新的完美平滑滚动集合视图,带有实时视频预览(一次最多 16 个:youtu.be/7QlaO7WxjGg 它甚至使用封面流自定义布局和“反射”视图完美反映视频预览。源代码在这里:mediafire.com/download/ivecygnlhqxwynr/…
标签: ios swift avplayer avplayerlayer