Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 多个AVPlayer实例工作在模拟器上,但不在Apple TV上_Swift_Avfoundation_Avplayer_Tvos_Apple Tv - Fatal编程技术网

Swift 多个AVPlayer实例工作在模拟器上,但不在Apple TV上

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个 我正在使用以下代码创建播放器(在闭包中执行,因此将弱自我作为输入,将强自我转换): 你们谁知道是什么导致了这个

我目前正在尝试在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()