在后台队列上创建和销毁AVFoundation类?

Ala*_*aro 6 multithreading avfoundation ios avplayer

我试图消除在主线程上分配AVPlayer,AVPlayerItem和AVURLAsset时发生的一些主线程性能命中.有没有人有将这些对象的分配/释放移动到后台线程的经验?同样,AVPlayer的currentItem可以设置在后台队列上吗?

zad*_*adr 0

一般来说,如果类文档中没有记录为线程安全的,则不应跨多个线程使用该类的对象。

更重要的是,虽然在主线程上做更少的事情有好处,但分配AVPlayer,AVPlayerItemAVURLAsset's 实际上永远不会成为您需要担心的瓶颈。相反,您应该运行 Instruments 并发现真正的性能问题,并专注于这些问题。

  • 我发现情况并非如此。使用 URL 分配 AVPlayer 项目往往会降低滚动性能 - 即使在后台线程上完成也是如此。我还不确定为什么会发生这种情况。 (2认同)