首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不在摄像机视野内时停止SKVideoNode播放

不在摄像机视野内时停止SKVideoNode播放
EN

Stack Overflow用户
提问于 2018-07-19 19:52:07
回答 1查看 429关注 0票数 0

我使用SpriteKit图像识别。SpriteKit工作正常,我可以进行图像识别。在识别之后,我在该图片上添加了一个视频。当摄像头改变方向,videoNode不在视野中时,如何移除视频?

简单的代码:

代码语言:javascript
复制
override func viewDidLoad() {
    super.viewDidLoad()

    guard let referenceImages = ARReferenceImage.referenceImages(inGroupNamed: "Room", bundle: nil) else {
        fatalError("Missing expected asset catalog resources.")
    }

    let configuration = ARWorldTrackingConfiguration()
    configuration.detectionImages = referenceImages

    sceneView.session.run(configuration, options: [.resetTracking, .removeExistingAnchors])

}



func view(_ view: ARSKView, didAdd node: SKNode, for anchor: ARAnchor) {

    if let imageAnchor = anchor as? ARImageAnchor,
        self.myImage == imageAnchor.referenceImage {
        node.addChild(self.addNode())
    }
}

private func addNode () -> SKVideoNode {
    let video = SKVideoNode(url: URL(string: "http://techslides.com/demos/sample-videos/small.mp4")!)
    video.size = CGSize(width: 40, height: 40)
    video.position = CGPoint(x: 0, y: 0)
    video.play()
    return video
}
EN

回答 1

Stack Overflow用户

发布于 2018-07-20 23:48:10

如果您想检查videoNode是否在相机中,只需执行camera.contains(videoNode)即可。

基本上,在相机移动时(无论您移动相机的位置)执行以下操作:

代码语言:javascript
复制
if !scene.camera.contains(videoNode){
    videoNode.pause()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51422008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档