2016-05-27 24 views
0

Wenn ich ein Video-Objekt mit SpriteKit erstellenios - Swift 2.2 - SpriteKit - Looping ein Video mit SpriteKit

let background = SKVideoNode(videoFileNamed: "Video.mov") 

ich nur ein Spiel mit dem Befehl erhalten:

background.play() 

Wie kann ich eine Endlosschleife, um es die ganze Zeit spielen zu lassen?

Ich habe einige Antworten zu dieser Frage gefunden, aber nur in Objective-C, nicht in Swift. Ich muss AVPlayer() verwenden, aber wie?

Danke für Ihre Hilfe,

+0

Sie finden Sie [hier] (http://stackoverflow.com/questions/28814929/play-video- forever-in-sprite-kit) die Lösung in Objective-C –

+0

Danke, aber wie, um das in Swift konvertieren? Ich kann keinen Zielcode in schnelle Dateien einfügen. – PGibouin

Antwort

0

fand ich die Lösung von verschiedenen Präzedenzfall Antworten von Stackoverflow zu kompilieren. Hier ist der Arbeitscode (swift 2.2). Dieser Code-Loops nahtlos an die Video-Wiedergabe mit einem SKSVideoNode Objekt auf der Szene (mit einem AVPlayer initializer):

override func didMoveToView(view: SKView) { 

    let urlStr = NSBundle.mainBundle().pathForResource("Video_Socle", ofType: "mov") 
    let url = NSURL(fileURLWithPath: urlStr!) 

    player = AVPlayer(URL: url) 

NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayTo  EndTimeNotification 
    , object: player!.currentItem, queue: nil) 
    { notification in 
     let t1 = CMTimeMake(5, 100); 
     self.player!.seekToTime(t1) 
     self.player!.play() 
    } 


    videoNode = SKVideoNode(AVPlayer: player!) 
    videoNode!.position = CGPointMake(frame.size.width/2, frame.size.height/2) 
    videoNode!.size = CGSize(width: 2048, height: 1536) 
    videoNode!.zPosition = 0 


    background.addChild(videoNode!) 
    videoNode!.play()