2016-02-08 31 views
-1

我在swift UIview中有一個函數使得2個mp4的循環。第一個MP4播放良好,但第二個不是,它似乎只播放一次,我怎麼能解決這個問題?爲什麼if語句在這個函數中從來沒有真

let videoURL: NSURL = NSBundle.mainBundle().URLForResource(instrumentaimp4[skaicius], withExtension: "mp4")! 
     let sakeleURL: NSURL = NSBundle.mainBundle().URLForResource("sakele_blikas", withExtension: "mp4")! 

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

     sakele = AVPlayer(URL: sakeleURL) 
     sakele?.actionAtItemEnd = .None 
     sakele?.muted = true 


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

     let playerLayer2 = AVPlayerLayer(player: sakele) 
     playerLayer2.videoGravity = AVLayerVideoGravityResizeAspectFill 
     playerLayer2.zPosition = 1 



     view.layer.addSublayer(playerLayer2) 
     view.layer.addSublayer(playerLayer) 

     player?.play() 
     sakele?.play() 


     //loop video 
     NSNotificationCenter.defaultCenter().addObserver(self, 
      selector: "loopVideo:", 
      name: AVPlayerItemDidPlayToEndTimeNotification, 
      object:nil) 








func loopVideo(notification: NSNotification) { 
    if let finishedPlayer = notification.object as! AVPlayerItem!{ 

     if finishedPlayer == self.sakele { 
      self.sakele?.seekToTime(kCMTimeZero) 
      self.sakele?.play() 
      NSLog("1") 
     }else{ 
      self.player?.seekToTime(kCMTimeZero) 
      self.player?.play() 
      NSLog("2")} 
    }} 

NSLog(「2」)從未發生。我的錯誤在哪裏?任何幫助apreciated

+0

發佈了完整的代碼,方法循環視頻缺少一個大括號。 –

+0

我的不好,修正了它 – snukumas

+0

如果「玩家」不玩,else語句永遠不會達到,因爲遊戲結束通知將永遠不會被解僱。你確定視頻網址是正確的嗎?因爲您正在使用它作爲可選播放器?.play()可能無法正常工作,但代碼仍然可以無錯地運行 – giorashc

回答

0

您的sakele是一個AVPlayer。但是您的notification.object聲稱是(並投射到)AVPlayerItem,然後將其分配到finishedPlayer。這沒有意義。當你來比較if finishedPlayer == self.sakele時,它永遠不會成功,因爲它們不是一樣的的對象,更不用說同一個對象。

+0

好吧,那麼我會如何去寫這個if語句呢,那麼它會成功嗎? c – snukumas

+0

你的問題是:「我的錯誤在哪裏?」我相信我已經非常清楚地回答了。 – matt

+0

對於措辭不佳的問題感到抱歉。隱約明白我的錯誤在哪裏,我只是不知道如何解決它。 – snukumas