2016-08-22 3 views
0

시작 메뉴 화면이있는 게임을 만들었습니다. 이 메뉴 화면에서이 메뉴 화면의 백그라운드에서 재생할 비디오 (iPhone 6 시뮬레이터를 통해이 게임을하는 것을 녹음했습니다)가 필요합니다. 동영상을 재생할 수 있지만보기가로드되고 메뉴가 표시되면 메뉴 자체를 대체하는 동영상이 표시됩니다.SKScene을 배경으로 한 비디오 재생

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.하지만, 대신 화면을 흰색으로 만든 다음 비디오 자체를 재생합니다.

정보를 추가하고 싶다면 언제든지 말씀해주세요.

고마워요, 요르단.

답변

1

보기에 레이어를 추가하는 대신 을 사용해보세요. 이 같은

뭔가 :

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

문서는 here 사용할 수 있습니다.

+0

효과가있었습니다. 하지만 어떻게 크기를 조정합니까? 너무 커. 확대 된 것처럼 보이지만 계속'VideoSprite.size = CGSize (self.frame)'를 시도했지만 오류가 발생합니다. –

+0

대신'VideoSprite.size = self.frame.size'를 사용해보세요. 'CGRect' (프레임)에서'CGSize'를 만들려고합니다. 그래서 오류가 발생합니다. – nathan

+0

두 가지 답변에 감사드립니다. 멋진 밤 되세요 (뉴욕). –