kingwrcy
kingwrcy

Reputation: 221

how to trigger done button event in ios 8 swift MPMoviePlayerDidExitFullscreenNotification?

my code here:

in viewDidLoad:

NSNotificationCenter.defaultCenter().addObserver(self, selector: "doneButtonClick", name: MPMoviePlayerWillExitFullscreenNotification, object: nil)

my handler:

func doneButtonClick(sender:NSNotification?){
    println("finishPreload");
}

let player:MPMoviePlayerController = MPMoviePlayerController()

my MPMoviePlayerController:

let videoUrl = (json[0]["files"][0]["furl"]).string

self.player.view.frame  = self.view.bounds
self.view.addSubview(self.player.view)

self.player.scalingMode = .AspectFill
self.player.controlStyle = .Fullscreen;
self.player.repeatMode = .One
self.player.contentURL = NSURL(string: videoUrl)
self.player.prepareToPlay()
self.player.play()

when i click the done button on the top left,the video is stopped,but the doneButtonClick method is not triggered,anyone can help ?i have tried MPMoviePlayerWillExitFullscreenNotification and MPMoviePlayerDidExitFullscreenNotification for serval times,both not work.

Upvotes: 4

Views: 2038

Answers (2)

Floris M
Floris M

Reputation: 1814

Swift 2 answer:

override func viewDidLoad() {
    super.viewDidLoad()
    ...
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MediaVideoController.moviePlayerDidFinishPlaying(_:)) , name: MPMoviePlayerDidExitFullscreenNotification, object: videoPlayerController)
}

func moviePlayerDidFinishPlaying(notification: NSNotification) {
    videoPlayerController.controlStyle = .None
}

Upvotes: 0

Samurai
Samurai

Reputation: 11

Your "doneButtonClick" function have one argument. So you should use ":" after the function name.

ie; NSNotificationCenter.defaultCenter().addObserver(self, selector: "doneButtonClick:", name: MPMoviePlayerWillExitFullscreenNotification, object: nil)

Upvotes: 1

Related Questions