Как сделать так, чтобы одновременно воспроизводилось только одно видео? ⇐ IOS
-
Anonymous
Как сделать так, чтобы одновременно воспроизводилось только одно видео?
Я создал приложение AR, которое воспроизводит видео по определенной привязке изображения. Я хотел расширить это приложение, чтобы оно могло обрабатывать более одного изображения. Теперь, когда я сканирую первое изображение, воспроизводится видео, а когда я сканирую второе изображение, воспроизводится другое видео. Проблема, которая здесь возникает, заключается в том, что оба видео воспроизводятся одновременно.
Код:
func renderer (_ renderer: SCNSceneRenderer, nodeFor привязки: ARAnchor) -> SCNNode? { пусть узел = SCNNode() если пусть imageAnchor = якорь как? ARImageAnchor { //приведенный ниже код необходимо продублировать, чтобы добавить больше новостей if imageAnchor.referenceImage.name == "Гаррипоттер" { let videoNode = SKVideoNode(fileNamed: "harrypotter.mp4") видеоузел.play() let videoScene = SKScene (размер: CGSize (ширина: 480, высота: 360)) videoNode.position = CGPoint(x: videoScene.size.width/2, y: videoScene.size.height/2) videoNode.yScale = -1.0 videoScene.addChild(videoNode) let plane = SCNPlane (ширина: imageAnchor.referenceImage.physicalSize.width, высота: imageAnchor.referenceImage.physicalSize.height) plane.firstMaterial?.diffuse.contents = videoScene пусть planeNode = SCNNode (геометрия: плоскость) planeNode.eulerAngles.x = -.pi / 2 node.addChildNode(planeNode) } if imageAnchor.referenceImage.name == "deatheater" { let videoNode = SKVideoNode(fileNamed: "deatheater.mp4") видеоузел.play() let videoScene = SKScene (размер: CGSize (ширина: 480, высота: 360)) videoNode.position = CGPoint(x: videoScene.size.width/2, y: videoScene.size.height/2) videoNode.yScale = -1.0 videoScene.addChild(videoNode) let plane = SCNPlane (ширина: imageAnchor.referenceImage.physicalSize.width, высота: imageAnchor.referenceImage.physicalSize.height) plane.firstMaterial?.diffuse.contents = videoScene пусть planeNode = SCNNode (геометрия: плоскость) planeNode.eulerAngles.x = -.pi / 2 node.addChildNode(planeNode) } Я пытался использовать 2 условия if, которые помогают воспроизводить видео по определенной привязке изображения. Теперь, когда я сканирую первое изображение, воспроизводится видео, а когда я сканирую второе изображение, воспроизводится другое видео. Проблема, которая здесь возникает, заключается в том, что оба видео воспроизводятся одновременно. Я хочу, чтобы при воспроизведении другого видео первое видео автоматически останавливалось.
Я создал приложение AR, которое воспроизводит видео по определенной привязке изображения. Я хотел расширить это приложение, чтобы оно могло обрабатывать более одного изображения. Теперь, когда я сканирую первое изображение, воспроизводится видео, а когда я сканирую второе изображение, воспроизводится другое видео. Проблема, которая здесь возникает, заключается в том, что оба видео воспроизводятся одновременно.
Код:
func renderer (_ renderer: SCNSceneRenderer, nodeFor привязки: ARAnchor) -> SCNNode? { пусть узел = SCNNode() если пусть imageAnchor = якорь как? ARImageAnchor { //приведенный ниже код необходимо продублировать, чтобы добавить больше новостей if imageAnchor.referenceImage.name == "Гаррипоттер" { let videoNode = SKVideoNode(fileNamed: "harrypotter.mp4") видеоузел.play() let videoScene = SKScene (размер: CGSize (ширина: 480, высота: 360)) videoNode.position = CGPoint(x: videoScene.size.width/2, y: videoScene.size.height/2) videoNode.yScale = -1.0 videoScene.addChild(videoNode) let plane = SCNPlane (ширина: imageAnchor.referenceImage.physicalSize.width, высота: imageAnchor.referenceImage.physicalSize.height) plane.firstMaterial?.diffuse.contents = videoScene пусть planeNode = SCNNode (геометрия: плоскость) planeNode.eulerAngles.x = -.pi / 2 node.addChildNode(planeNode) } if imageAnchor.referenceImage.name == "deatheater" { let videoNode = SKVideoNode(fileNamed: "deatheater.mp4") видеоузел.play() let videoScene = SKScene (размер: CGSize (ширина: 480, высота: 360)) videoNode.position = CGPoint(x: videoScene.size.width/2, y: videoScene.size.height/2) videoNode.yScale = -1.0 videoScene.addChild(videoNode) let plane = SCNPlane (ширина: imageAnchor.referenceImage.physicalSize.width, высота: imageAnchor.referenceImage.physicalSize.height) plane.firstMaterial?.diffuse.contents = videoScene пусть planeNode = SCNNode (геометрия: плоскость) planeNode.eulerAngles.x = -.pi / 2 node.addChildNode(planeNode) } Я пытался использовать 2 условия if, которые помогают воспроизводить видео по определенной привязке изображения. Теперь, когда я сканирую первое изображение, воспроизводится видео, а когда я сканирую второе изображение, воспроизводится другое видео. Проблема, которая здесь возникает, заключается в том, что оба видео воспроизводятся одновременно. Я хочу, чтобы при воспроизведении другого видео первое видео автоматически останавливалось.
Мобильная версия