【问题标题】:Swift - Can't Dismiss MPMoviePlayerViewControllerSwift - 无法关闭 MPMoviePlayerViewController
【发布时间】:2015-06-19 13:36:00
【问题描述】:

我有一个视频,它在我的应用程序中以 MPMoviePlayerController 形式打开。除了应该关闭播放器的Done 按钮之外,这一切都很好。第一次播放视频时,Done 按钮效果很好。但是,如果您在观看时暂停,然后在第二次尝试播放视频时点击DoneDone 按钮将不起作用。我在这里做了一个屏幕录制,以使其更易于理解: http://1drv.ms/1Jcdodc

谁能帮忙?

这是我正在使用的代码:

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

 }

【问题讨论】:

    标签: xcode swift video mpmovieplayercontroller


    【解决方案1】:

    为了解决这个问题,我将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()
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-04-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 1970-01-01
      • 1970-01-01
      • 2021-07-27
      • 1970-01-01
      相关资源
      最近更新 更多