2016-08-22 3 views
0

Ich habe ein Spiel erstellt, das einen Startbildschirm hat. In diesem Menübildschirm möchte ich ein Video (ich habe dieses Spiel mit dem iPhone 6-Simulator aufgenommen) im Hintergrund dieses Menübildschirms abspielen. Ich habe das Video abgespielt, aber was passiert, wenn die Ansicht geladen wird, wird das Menü angezeigt, dann wird das Video angezeigt, das das Menü selbst ersetzt.Video im Hintergrund von SKScene spielen

import SpriteKit 
import UIKit 
import AVFoundation 




class MenuScene: SKScene { 


var player:AVPlayer! 
var VideoSprite:SKVideoNode! 





override func didMoveToView(view: SKView) { 
let videoURL: NSURL = NSBundle.mainBundle().URLForResource("startTo32", withExtension: "mov")! 

    player = AVPlayer(URL: videoURL) 
    player?.actionAtItemEnd = .None 
    player?.muted = true 


    let playerLayer = AVPlayerLayer(player: player) 
    playerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
    playerLayer.zPosition = -100 


    playerLayer.frame = view.frame 

    player?.play() 


    NSNotificationCenter.defaultCenter().addObserver(self, 
                selector: #selector(MenuScene.loopVideo), 
                name: AVPlayerItemDidPlayToEndTimeNotification, 
                object: nil) 

    view.layer.addSublayer(playerLayer) 


} 



func loopVideo() { 
    player?.seekToTime(kCMTimeZero) 
    player?.play() 
} 

-------- -------- UPDATE

Here's the link to see what I'm talking about. der Bildschirm mit den Worten ist, wo ich versuche, das Video zu bekommen zu spielen, aber Stattdessen wird der Bildschirm nur weiß und dann das Video selbst abgespielt.

Fragen oder Bedarf für mich, um Informationen hinzuzufügen, nur kommentieren.

Danke, Jordanien.

Antwort

1

Verwenden Sie Ihre , anstatt eine Ebene zu Ihrer Ansicht hinzuzufügen.

Etwas wie folgt aus:

let videoURL: NSURL = NSBundle.mainBundle().URLForResource("startTo32", withExtension: "mov")! 
VideoSprite = SKVideoNode(url: videoURL) 
self.addChild(VideoSprite) 
VideoSprite.play() 

Dokumentation ist here zur Verfügung.

+0

Es hat funktioniert. Aber wie ändere ich die Größe? Es ist zu groß. Wie es gezeigt wird, gezoomt. Ich versuche weiterhin 'VideoSprite.size = CGSize (self.frame)', aber ich bekomme einen Fehler. –

+0

Probieren Sie stattdessen 'VideoSprite.size = self.frame.size' aus. Sie versuchen, eine 'CGSize' aus einem' CGRect' (Rahmen) zu konstruieren, weshalb Sie einen Fehler bekommen. – nathan

+0

Danke für beide Antworten. Gute Nacht (New York). –