Бесшовный цикл SKVideoNode с использованием AVPlayerLooper

Привет, кто-нибудь может сказать мне, почему использование AVPlayerLooper на SKVideoNode вызывает небольшую задержку между циклами, тогда как его использование на AVPlayerLayer происходит без проблем? Мне нужно использовать SKVideoNode из-за размещения слоя в SKScene, но мне также нужно, чтобы он был цельным. Он отлично работает с AVPlayerLayer, но тогда он находится перед SKScene.

Это бесшовно...

              let fileUrl = Bundle.main.url(forResource: "chicken", withExtension: "mp4")!
        let asset = AVAsset(url: fileUrl)
        let playerItem = AVPlayerItem(asset: asset)
        queuePlayer = AVQueuePlayer(playerItem: playerItem)
        playerLayer = AVPlayerLayer(player: queuePlayer)
        playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: playerItem)
        playerLayer.frame = CGRect(x: 0, y: 525 * hR, width: view.frame.width, height: 294 * hR)
        playerLayer.videoGravity = AVLayerVideoGravity.resize
        playerLayer.zPosition = -1
        view.layer.addSublayer(playerLayer)
        queuePlayer.play()

Это не бесшовно

              let fileUrl = Bundle.main.url(forResource: "chicken", withExtension: "mp4")!
        let asset = AVAsset(url: fileUrl)
        let playerItem = AVPlayerItem(asset: asset)
        queuePlayer = AVQueuePlayer(playerItem: playerItem)
        playerLooper = AVPlayerLooper(player: queuePlayer, templateItem: playerItem)
        skVideoNode = SKVideoNode(avPlayer: queuePlayer)
        skVideoNode.position = CGPoint(x: frame.midX, y: view.frame.height - 672 * hR)
        skVideoNode.size = CGSize(width: view.frame.width , height: 294 * hR)
        addChild(skVideoNode)
        skVideoNode.play()

0 ответов

Другие вопросы по тегам