允许同时创建多少个AVPlayers?

JEL*_*JEL 7 objective-c avfoundation ios avplayer swift

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

在此输入图像描述

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

print("Video player Status Failed: player item error =  (self.player.currentItem.error)")
print("Video player Status Failed: player error = \(self.player.error)")
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢!

pev*_*uez 6

实际上,众所周知,您可以同时保持活动状态的 AVPlayer 实例数量存在上限,但此限制取决于您的代码运行的平台。我自己发现在运行 iOS 8 的 iPhone 5s 上,有 4 个并发 AVPlayer 实例的限制。在这里,例如,用户报告 tvOS 的限制为 7,在 2012年的堆栈溢出中报告了同样的限制 4 。

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

  • @Adrian_H 可能可以在这篇 Pinterest 工程博客文章中找到实现您所期望的最佳方式,关于他们如何构建自己的本地播放器,这是一个很好的阅读:https://medium.com/@Pinterest_Engineering/building-native-video -pins-7ff89ad3ec33 (2认同)