Reputation: 221
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
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
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