title: How to close previous AVPlayer and AVPlayerItem
body: <p>I'm making an iOS app in Swift that plays a video in a loop in a small layer in the top right corner of the screen which shows a video of specific coloured item. the user then taps the corresponding coloured item on the screen. when they do, the videoName variable is randomly changed to the next colour and the corresponding video is triggered. I have no problem raising, playing and looping the video with AVPlayer, AVPlayerItem as seen in the attached code.
  Where I'm stuck is that whenever the next video is shown, previous ones stay open behind it. Also, After 16 videos have played, the player disappears altogether on my iPad.  I've tried many suggestions presented in this and other sites but either swift finds a problem with them or it just doesn't work.
  <strong>So question:  within my code here, how do I tell it "hey the next video has started to play, remove the previous video and it's layer and free up the memory so i can play as many videos as needed"?</strong></p>
  
  <pre><code>//set variables for video play
  var playerItem:AVPlayerItem?
  var player:AVPlayer?
  
  //variables that contain video file path, name and extension
  var videoPath = NSBundle.mainBundle().resourcePath!
  var videoName = "blue"
  let videoExtension = ".mp4"
  
  //DISPLAY VIDEO
  func showVideo(){
  
          //Assign url path
          let url = NSURL(fileURLWithPath: videoPath+"/Base.lproj/"+videoName+videoExtension)
          playerItem = AVPlayerItem(URL: url)
          player=AVPlayer(playerItem: playerItem!)
          let playerLayer=AVPlayerLayer(player: player!)
  
          //setplayser location in uiview and show video
          playerLayer.frame=CGRectMake(700, 5, 350, 350)
          self.view.layer.addSublayer(playerLayer)
          player!.play()
  
       // Add notification to know when the video ends, then replay   it again.  THIS IS A CONTINUAL LOOP
       NSNotificationCenter.defaultCenter().addObserverForName(AVPlayerItemDidPlayToEndTimeNotification, object: player!.currentItem, queue: nil)
      { notification in
          let t1 = CMTimeMake(5, 100);
          self.player!.seekToTime(t1)
          self.player!.play()
      }
  
  }
  </code></pre>
  
  <p>`</p>