2015-06-19 6 views
9

У меня есть видео, которое открывается в MPMoviePlayerController в моем приложении. Все работает отлично, за исключением кнопки Done, которая должна закрыть плеер. В первый раз, когда воспроизводится видео, кнопка Done отлично работает. Но если вы приостановите его, когда будете смотреть его, нажмите Done во второй раз, когда вы попытаетесь воспроизвести видео, кнопка Done не работает. Я сделал запись экрана здесь, чтобы сделать ее более простой для понимания: http://1drv.ms/1JcdodcSwift - Не могу отменить MPMoviePlayerViewController

Может ли кто-нибудь помочь?

Это мой код, который я использую:

import UIKit 
import MediaPlayer 

class MainContent: UIViewController { 

//Movie Player variables 
    var movieViewController : MPMoviePlayerViewController? 
    var movieplayer : MPMoviePlayerController! 


override func viewDidLoad() { 

     super.viewDidLoad() 

     //Video Player setup 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "doneButtonClick:", name: MPMoviePlayerPlaybackDidFinishNotification, object: nil) 

     var url = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")! 
     movieViewController = MPMoviePlayerViewController(contentURL: url) 

} 



func doneButtonClick(sender:NSNotification?){ 
    let value = UIInterfaceOrientation.Portrait.rawValue 
    UIDevice.currentDevice().setValue(value, forKey: "orientation") 
    } 

     //when watch button is pressed, present the movie player 
    @IBAction func watchPressed(sender: AnyObject) 
    {self.presentMoviePlayerViewControllerAnimated(movieViewController)} 

} 

ответ

3

Чтобы устранить эту проблему, я добавил myMoviePlayerViewController.moviePlayer.stop() к функции «doneButtonClick». Затем я добавил myMoviePlayerViewController.moviePlayer.play() снова к

@IBAction func watchPressed(sender: AnyObject) 
    {self.presentMoviePlayerViewControllerAnimated(movieViewController)} 

} 

Так что все во всех простых исправить! Код ниже:

import UIKit 
import MediaPlayer 

class MainContent: UIViewController { 

//Movie Player variables 
    var movieViewController : MPMoviePlayerViewController? 
    var movieplayer : MPMoviePlayerController! 


override func viewDidLoad() { 

     super.viewDidLoad() 

     //Video Player setup 
     NSNotificationCenter.defaultCenter().addObserver(self, selector: "doneButtonClick:", name: MPMoviePlayerPlaybackDidFinishNotification, object: nil) 

     var url = NSURL(string: "http://jplayer.org/video/m4v/Big_Buck_Bunny_Trailer.m4v")! 
     movieViewController = MPMoviePlayerViewController(contentURL: url) 

} 

func doneButtonClick(sender:NSNotification?){ 
    let value = UIInterfaceOrientation.Portrait.rawValue 
    UIDevice.currentDevice().setValue(value, forKey: "orientation") 
    movieViewController?.moviePlayer.stop() 
    } 

    @IBAction func watchPressed(sender: AnyObject){ 
     self.presentMoviePlayerViewControllerAnimated(movieViewController) 
     movieViewController?.moviePlayer.play() 
    } 
} 
Смежные вопросы