2015-08-24 31 views
1

我使用的是SKVideoNode使用此代码显示动画飞溅的场景:如何检测SKVideoNode播放完成

SKVideoNode *video = [SKVideoNode videoNodeWithVideoFileNamed:@"splash_video.mp4"]; 



    video.position = CGPointMake(CGRectGetMidX(self.frame), 
           CGRectGetMidY(self.frame)); 

    [self addChild:video]; 
    [video play]; 

我希望一次视频播放到显示下一场景。我怎样才能做到这一点?

回答

0

添加到您的viewDidLoad中或其他地方适合

let videoURL = NSURL(string: url) 
let player = AVPlayer(URL: videoURL!) 
player.actionAtItemEnd = .None 
let videoSpriteKitNode = SKVideoNode(AVPlayer: player) 

NSNotificationCenter.defaultCenter().addObserver(self, selector: "playerItemDidReachEnd:", name: AVPlayerItemDidPlayToEndTimeNotification, object: player.currentItem) 

并添加此功能:

func playerItemDidReachEnd(notification: NSNotification) { 

    if let playerItem = notification.object as? AVPlayerItem { 
     //Start your next video here 
    } 
}