2016-11-07 102 views
3

我有一个collectionView和每个cell有一个AVPlayer它被设置为播放。所以每个小区都在同一时间播放视频。 iOS似乎只允许你同时播放16个视频。例如,请看下面的示例应用程序。在50个cells中,只有16个开始播放视频。这个数字总是保持不变。这发生在运行iOS 10的iPhone 6s上。然而,在Xcode模拟器中,所有50个视频都开始播放。这个问题只发生在实际的设备上。允许同时创建多少个AVPlayers?

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月7日15:53:46.548288 SampleApp [1810:515089]视频播放状态失败:播放器项目错误=错误域= AVFoundationErrorDomain代码= -11839“无法解码”UserInfo = {NSUnderlyingError = 0x1704414d0 {错误域= NSOSStatusErrorDomain代码= -12913“(空)”},NSLocalizedFailureReason =此媒体所需的解码器忙。 NSLocalizedRecoverySuggestion =停止解码媒体的任何其他操作并再次尝试。,NSLocalizedDescription =无法解码} 2016-11-07 15:53:46.548358 SampleApp [1810:515089]视频播放器状态失败:播放器错误=(null)

是否有限制您有多少个AVPlayer或我正在做些什么错误?

谢谢!

回答

2

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

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

+0

很可能是硬件的功能? –

+0

@i_am_jorf好吧,他们没有记录它的事实使得它很可能是任何东西的功能。 – pevasquez

+0

@pevasquez对于我的应用程序,我将同时播放10-20个视频。有没有解决方法?任何图书馆?或者有没有办法重用AVPlayers?谢谢! – JEL