2016-08-22 80 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

謝謝你的答案。祝你有個美好的夜晚(紐約)。 –

相關問題