允许同时创建多少个AVPlayers?

时间:2016-11-07 20:58:19

标签: ios objective-c swift avfoundation avplayer

我有一个collectionView,每个cell都有AVPlayer设置为播放。所以每个小区都在同时播放视频。 iOS似乎只允许您同时播放16个视频。例如,请查看下面的示例应用。在50 cells中,只有16人开始播放视频。这个数字总是保持不变。这种情况发生在运行iOS 10的iPhone 6上。在Xcode模拟器中,所有50个视频都开始播放。此问题仅发生在实际设备上。

enter image description here

另外,当我打印出来时,我得到了这两个错误:

print("Video player Status Failed: player item error =  (self.player.currentItem.error)")
print("Video player Status Failed: player error = \(self.player.error)")

2016-11-07 15:53:46.548288 SampleApp [1810:515089]视频播放器状态失败:播放器项错误=错误域= AVFoundationErrorDomain代码= -11839"无法解码" UserInfo = {NSUnderlyingError = 0x1704414d0 {Error Domain = NSOSStatusErrorDomain Code = -12913"(null)"},NSLocalizedFailureReason =此媒体所需的解码器正忙。,NSLocalizedRecoverySuggestion =停止解码媒体和其他任何操作再试一次。,NSLocalizedDescription =无法解码} 2016-11-07 15:53:46.548358 SampleApp [1810:515089]视频播放器状态失败:播放器错误=(null)

您可以拥有多少AVPlayer或我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

事实上,众所周知,AVPlayer实例的数量上限可以同时保持活跃,但这个限制取决于运行代码的平台。 我自己发现在运行iOS 8的iPhone 5s上,有4个并发AVPlayer实例的限制。例如,Here用户报告tvOS的限制为7,2012年报告的限制为4 in stack overflow

在任何情况下,此限制未正式记录意味着它可以在平台和操作系统版本之间来回切换,因此除了保持并发AVPlayer实例尽可能低之外,您不应该将任何代码基于此。