Удаление SKVideoNode не останавливает звук с видео узла - PullRequest
0 голосов
/ 01 января 2019

Я добавил SKVideoNode в свою GameScene.Когда я пытаюсь удалить видео, видеоизображение исчезает, но звук продолжает воспроизводиться.Я пытался остановить и приостановить видео перед удалением, но звук продолжает воспроизводиться независимо.

var introVideoIsPlaying = false
var introVideo: SKVideoNode!

func playIntroVideo() {

    introVideoIsPlaying = true

    if let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4") {

        introVideo = SKVideoNode(url: videoURL)
        introVideo.position = CGPoint(x: frame.midX, y: frame.midY)
        introVideo.size = self.frame.size

        self.addChild(introVideo)
        introVideo.play()

    }
}

Затем я удаляю видео в своих прикосновениях. Начало -

if introVideoIsPlaying == true {

        introVideo.removeFromParent()
    }

Чего мне не хватает?Есть ли способ самостоятельно остановить звук в SKVideoNode?

1 Ответ

0 голосов
/ 01 июня 2019

Лучше использовать AVPlayer в сочетании со SKVideoNose, как показано ниже:

(у вас будет больше возможностей для управления видео)

var player: AVPlayer?
player = AVPlayer(url: videoURL)
let videoNode = SKVideoNode(avPlayer: player!)

Затем можно использовать функцию didUpdate, котораясрабатывает каждый раз, когда меняется узел.Вы можете приостановить видео, когда узел не виден, как показано ниже

func renderer(_ renderer: SCNSceneRenderer, didUpdate node: SCNNode, for anchor: ARAnchor) {
    if node.isHidden == true {
        print("Node is out of view")
        self.player?.pause()

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...