Swift 多个AVPlayer实例工作在模拟器上,但不在Apple TV上
我目前正在尝试在tvOS上使用AVPlayer和AVPlayerLayer并行播放多个AVPlayer。在模拟器中,这是正常工作的,在设备上只有一些玩家在玩,其余的玩家层只是保持空白(甚至不是黑色,只是空白)。我听说内部实现只支持24个同时实例,所以我已经将数量限制为24个。然而,在物理设备上,大约15名玩家可以并行玩。令人惊讶的是,这个数字往往有所不同,有时只有13个,有时甚至16个 我正在使用以下代码创建播放器(在闭包中执行,因此将弱自我作为输入,将强自我转换):Swift 多个AVPlayer实例工作在模拟器上,但不在Apple TV上,swift,avfoundation,avplayer,tvos,apple-tv,Swift,Avfoundation,Avplayer,Tvos,Apple Tv,我目前正在尝试在tvOS上使用AVPlayer和AVPlayerLayer并行播放多个AVPlayer。在模拟器中,这是正常工作的,在设备上只有一些玩家在玩,其余的玩家层只是保持空白(甚至不是黑色,只是空白)。我听说内部实现只支持24个同时实例,所以我已经将数量限制为24个。然而,在物理设备上,大约15名玩家可以并行玩。令人惊讶的是,这个数字往往有所不同,有时只有13个,有时甚至16个 我正在使用以下代码创建播放器(在闭包中执行,因此将弱自我作为输入,将强自我转换): 你们谁知道是什么导致了这个
你们谁知道是什么导致了这个问题?我也愿意接受任何解决方法,如果你们中有人能建议的话:)这其实并不令人惊讶。过去,即使在iOS上,也有一条规则,即只能播放一部电影(请参阅我的书)。所以这个限制在电视上是正确的想法并不是一个很大的延伸。是的,对于MPMoviePlayerController(在电视操作系统上不可用)可能是正确的。我忘了提到的是(编辑了我上面的帖子):可以同时激活的玩家数量不同!它并不总是15,有时是13,有时甚至16。这不仅仅适用于MPMoviePlayerController。MPMoviePlayerController只是AVPlayerLayer的包装器,就像所有其他视频显示一样。我是说你达到了一个固有的极限。我想说的是,这个极限可能大于1的想法实际上是个惊喜。这其实并不是什么惊喜。过去,即使在iOS上,也有一条规则,即只能播放一部电影(请参阅我的书)。所以这个限制在电视上是正确的想法并不是一个很大的延伸。是的,对于MPMoviePlayerController(在电视操作系统上不可用)可能是正确的。我忘了提到的是(编辑了我上面的帖子):可以同时激活的玩家数量不同!它并不总是15,有时是13,有时甚至16。这不仅仅适用于MPMoviePlayerController。MPMoviePlayerController只是AVPlayerLayer的包装器,就像所有其他视频显示一样。我是说你达到了一个固有的极限。我想说的是,这个极限可能大于1的想法实际上是一个惊喜。
guard let strongSelf = self else { return }
strongSelf.player = AVPlayer(URL: localURL)
strongSelf.player?.volume = 0.0
strongSelf.player?.actionAtItemEnd = .Pause
NSNotificationCenter.defaultCenter().addObserver(strongSelf, selector: "playerPlayedToEnd:", name: AVPlayerItemDidPlayToEndTimeNotification, object: strongSelf.player?.currentItem)
strongSelf.playerLayer = AVPlayerLayer(player: strongSelf.player)
strongSelf.playerLayer?.frame = strongSelf.contentView.bounds
strongSelf.playerLayer?.videoGravity = AVLayerVideoGravityResizeAspect
strongSelf.contentView.layer.addSublayer(strongSelf.playerLayer!)
strongSelf.player?.play()
strongSelf.activityIndicatorView.stopAnimating()