2015-06-19 44 views
9

Uygulamamda bir MPMoviePlayerController içinde açılan bir video var. Oynatıcıyı kapatması gereken Done düğmesi hariç her şey harika çalışıyor. Videonun ilk kez oynatıldığı Done düğmesi harika çalışıyor. Ancak, videoyu izlediğinizde duraklatırsanız, videoyu oynatmaya çalıştığınız ikinci kez Done'a basın, Done düğmesi çalışmaz. Bunu anlamak için biraz daha basit bir ekran kaydettim: http://1drv.ms/1JcdodcSwift - Devre Dışı Bırakılamıyor MPMoviePlayerViewController

Herkes yardımcı olabilir mi?

Bu

kullanıyorum benim kodudur:

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)} 

} 

cevap

3

Bu sorunu gidermek için, ben 'doneButtonClick' işlevine myMoviePlayerViewController.moviePlayer.stop() eklendi. Sonra hepsi basit düzeltme

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

} 

herkese tekrar myMoviePlayerViewController.moviePlayer.play() eklendi! Kod aşağıdadır:

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() 
    } 
}