@AVPlayer mostra uma tela preta ao reproduzir vários vídeos no Swift3 iOS

Eu estou trabalhando emVideo baseado em jogadorApplication, onde eu tenho que jogar váriosVideos usandoAVPlayer. Cadavideo tem que jogar com algunsCIFilter efeito, então eu estou usandoVideoComposition por isso

Meu problema é quando há mais de umVideo no meuVideoArray então primeiroVideo está tocando perfeitamente com o áudio, mas quando chegar ao próximo vídeo,AVPlayer mostra tela preta, masaudio som doVideo está vindo. Estou invocando o método comum abaixo sempre queVideo está jogando

private func createPlayerForVideoIndex(index: Int){

        guard let videoComposition = videoFilterComposition else { return }

        self.player?.pause()
        self.audioPlayer?.pause()

        playerLayer?.removeFromSuperlayer()

        let video = videoClipsArray.object(at: index) as! VideoFileModel
        playerItem = AVPlayerItem(url:NSURL(fileURLWithPath: video.localFilePath) as URL)
        playerItem?.videoComposition = videoComposition

        self.player = AVPlayer(playerItem: playerItem)

        playerLayer = AVPlayerLayer(player: player)

        playerLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill
        playerLayer?.frame = CGRect(x:0, y:67, width:self.view.frame.size.width, height:250)

        self.view.layer.addSublayer(playerLayer!)



            if !myScrollView.isDescendant(of: self.view) {

                myScrollView.frame = (playerLayer?.frame)!
                myScrollView.delegate = self
                myScrollView.isPagingEnabled = true
                myScrollView.showsHorizontalScrollIndicator = false
                myScrollView.showsVerticalScrollIndicator = false
                myScrollView.backgroundColor = UIColor.clear

                self.view.addSubview(myScrollView)
            }

            self.view.bringSubview(toFront: self.pageControl)


            self.myScrollView.contentSize = CGSize(width:self.myScrollView.frame.size.width * 4,height: self.myScrollView.frame.size.height)

            let startSeconds : Int64 = Int64(video.leftRangeValue)
            let targetTime:CMTime = CMTimeMake(startSeconds, 1)
            self.player?.seek(to: targetTime)

            let endSeconds : Int64 = Int64(video.rightRangeValue)
            self.player?.currentItem?.forwardPlaybackEndTime = CMTimeMake(endSeconds, 1)

            self.player?.volume = videoVolumeSlider.value

            self.player?.play()
            self.audioPlayer?.play()

            self.player?.rate = video.slowFastMotionRate

    }

Presumo que deva ter o problema com o método acima, que está sempre chamando para cadaVideo (Quero dizer no próximo vídeo).

Alguém pode me sugeri

questionAnswers(0)

yourAnswerToTheQuestion