gpt4 book ai didi

swift - 删除 SKVideoNode 不会停止来自视频节点的音频

转载 作者:行者123 更新时间:2023-11-28 13:54:59 24 4
gpt4 key购买 nike

我已经在我的 GameScene 中添加了一个 SKVideoNode。当我尝试删除视频时,视频图像消失了,但音频继续播放。我试图在删除之前停止并暂停视频,但无论如何音频都会继续播放。

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()

}
}

然后我删除了 touchesBegan 中的视频 -

if introVideoIsPlaying == true {

introVideo.removeFromParent()
}

我可能会遗漏什么?有没有办法独立停止 SKVideoNode 中的音频?

最佳答案

最好将 AVPlayer 与 SKVideoNose 结合使用,如下所示:

(您将有更多选项来控制视频)

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

然后您可以使用 didUpdate 函数,该函数会在节点更改时随时触发。当节点不在 View 中时,您可以暂停视频,如下所示

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

}

}

关于swift - 删除 SKVideoNode 不会停止来自视频节点的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com