Бесшовный цикл 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()