L'utilisation de Swift avec AVPlayer, comment voulez-vous ajouter et supprimer une vidéo via le code?

Je suis nouveau sur Swift et suis en train d'ajouter une vidéo à la vue, puis les retirer lors de mon "stopScreenSaver" notification est envoyée. Tout semble bien fonctionner sauf quand je vais à supprimer le calque vidéo (playerLayer.removeFromSuperlayer()).

Toute orientation serait appréciée. Je me sens comme je suis pas certains concept de base ici pour l'ajout et le retrait de la couche de!

    import UIKit
import AVFoundation
import QuartzCore
import CoreMedia
class ViewController: UIViewController {
let contentURL = NSBundle.mainBundle().URLForResource("testvideo", withExtension: "mp4")
var player = AVPlayer()
var playerLayer = AVPlayerLayer()
let screenSize : CGRect = UIScreen.mainScreen().bounds
override func viewDidLoad() {
super.viewDidLoad()
//Used for starting and stopping the videos related to the screen saver
            NSNotificationCenter.defaultCenter().addObserver(self, selector: "playScreenSaver:", name: "playScreenSaverID", object: nil)
NSNotificationCenter.defaultCenter().addObserver(self, selector: "stopScreenSaver:", name: "stopScreenSaverID", object: nil)
}
override func viewDidAppear(animated: Bool) {
//Player
            player = AVPlayer(URL: contentURL!)
//Layer for display… Video plays at the full size of the iPad
            playerLayer = AVPlayerLayer(player: player)
var view = UIView(frame: CGRectMake(0, 0, screenSize.width, screenSize.height))
self.view.layer.addSublayer(playerLayer)
playerLayer.frame = view.bounds
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
func playScreenSaver(notification: NSNotification){
print("play")
dispatch_async(dispatch_get_main_queue()) {
self.view.layer.addSublayer(self.playerLayer!)
self.player!.play()
}
}
func stopScreenSaver(notification: NSNotification){
print("pause")
dispatch_async(dispatch_get_main_queue()) {
self.player!.pause()
self.playerLayer!.removeFromSuperlayer()
}
}
}
envoi à la file d'attente principale. dispatch_async(dispatch_get_main_queue()) { joueur.pause() playerLayer.removeFromSuperlayer() })

OriginalL'auteur B.Man | 2015-09-22