我使用SpriteKit图像识别。SpriteKit工作正常,我可以进行图像识别。在识别之后,我在该图片上添加了一个视频。当摄像头改变方向,videoNode不在视野中时,如何移除视频?
简单的代码:
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
}发布于 2018-07-20 23:48:10
如果您想检查videoNode是否在相机中,只需执行camera.contains(videoNode)即可。
基本上,在相机移动时(无论您移动相机的位置)执行以下操作:
if !scene.camera.contains(videoNode){
videoNode.pause()
}https://stackoverflow.com/questions/51422008
复制相似问题