AVPlayer最多只能播放16个视频

时间:2018-06-26 09:47:52

标签: swift swift3 avplayer

我实现了一个寻呼机,其中每个页面向用户显示一个视频。每个页面都有自己的AVPlayer实例化。 一切正常,直到第17个视频。

关于此问题,我读了很多书。看来这是Apple的限制,其中应用程序只能显示播放器图层。

我尝试的解决方案(多个消息来源说它可以解决问题)是从其父级移除播放器层并将播放器设置为Nil。因此,每当页面消失(didDisappear)时,我都会呼叫:

// player and playerLayer are init at viewWillAppear().
player?.pause()
player = nil
playerLayer?.removeFromSuperlayer()

那什么都不会改变...我仍然只能播放16部视频。

因此,我的问题是:

1)为什么会这样?真的可以预期吗?

2)Musical.ly或Snapchat如何实现在视频之间无限切换?

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

尝试使用

更改代码
player?.pause()
player?.replaceCurrentItem(with: nil)
playerLayer?.removeFromSuperlayer()
player = nil

nil项设置为播放器将停止播放。

1)是的,这是AVPlayer的预期行为。它是为创建视频播放器或在游戏中显示广告视频而设计的,但不适用于具有Instagram或类似服务的视频墙。

2)很简单。他们没有使用AVPlayer。您可以结合使用AVAssetReaderAVSampleBufferDisplayLayer