我正在尝试消除在主线程上分配AVPlayer,AVPlayerItem和AVURLAsset时发生的一些主线程性能命中。有没有人有将这些对象的分配/释放移动到后台线程的经验?同样,可以在后台队列上设置AVPlayer的currentItem吗?
答案 0 :(得分:2)
以下肯定会影响滚动性能
我尝试从后台线程分配AVPlayer,但是,AVFoundation将切换回main并从main执行分配/初始化。与播放/暂停相同。
我在后台线程上取消分配AVPlayer / AVPlayerItem取得了一些成功。基本上你需要从你的后台线程中清除对AVPlayer的最后一个引用。
答案 1 :(得分:-1)
一般来说,如果在类文档中没有记录为线程安全,则不应在多个线程中使用该类的对象。
更重要的是,尽管在主线程上做得更少有好处,但分配AVPlayer
,AVPlayerItem
和AVURLAsset
并不会成为你的瓶颈需要担心。相反,你应该运行仪器并找到真正的性能问题,而是专注于那些。