2

当我执行此代码时,FbMediaView 就像在主线程上加载广告视频,但在显示图像时它不会冻结。我不明白为什么?

let nativeAd = self.adsManager.nextNativeAd()
    let cell : AdHomeCell? = self.collectionView!.dequeueReusableCellWithReuseIdentifier("AdHomeCell", forIndexPath: indexPath) as? AdHomeCell
    cell?.createForAd(nativeAd)
    nativeAd?.registerViewForInteraction(cell!, withViewController: self)
    return cell

我有最新的 Facebook SDK (4.8.0)

4

1 回答 1

8

Audience Network iOS SDK 在内部使用 AVFoundation 来播放视频广告。初始化 AVAsset 在主线程上做了很多工作。主线程处理 iOS 上的所有 UI 更新,因此这会导致可见的暂停,尤其是在加载多个视频广告时。如果不使用私有 API,就无法将工作卸载到不同的线程。

我们知道性能影响。我们正在 v4.9 中部署一些短期的边际改进,并且我们正在努力进行长期修复。目前,不建议在某些需要高水平滚动性能的应用中使用视频广告。

(我是 Audience Network 的一名软件工程师,负责开发 iOS SDK。)

于 2016-01-08T21:37:48.917 回答