MPMoviePlayerController Stops Playing After 5 seconds - Swift

烂漫一生 提交于 2019-12-20 06:28:36

问题


I have a video I'm trying to play using MPMoviePlayerController and it loads fine, but cuts out after 5 seconds. I found this post, but it isn't really applicable for swift.

MPMoviePlayerController stops playing the video after 5s

Here is my code.

import MediaPlayer




class ViewController: UIViewController  {


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.



    var moviePlayer: MPMoviePlayerController?



let url = NSURL(string: "http://path/to/video.m3u8")

    moviePlayer = MPMoviePlayerController(contentURL: url)

    if let player = moviePlayer {

        player.view.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height)
        player.view.sizeToFit()
        player.scalingMode = MPMovieScalingMode.None


        player.movieSourceType = MPMovieSourceType.Streaming
        //player.repeatMode = MPMovieRepeatMode.One


        player.play()

        self.view.addSubview(player.view)

        NSNotificationCenter.defaultCenter().addObserver(
            self,
            selector: "metadataUpdated",
            name: MPMoviePlayerTimedMetadataUpdatedNotification,
            object: nil)

    }

}

回答1:


Could your moviePlayer be going out of scope? Have you tried making it a member variable?

moviePlayer is a local variable of viewDidLoad, so once that function finishes, I don't see any reason why your player would not be deallocated.

If you instead make it a variable of the class, its lifetime will be extended to match your class's lifetime.

something like

class ViewController: UIViewController {

var player: MPMoviePlayerController?

    override func viewDidLoad() {
        // ...
        self.player = MPMoviePlayerController(contentURL: url) // won't go out of scope at end of viewDidLoad()
        // ...
    }


来源:https://stackoverflow.com/questions/29359276/mpmovieplayercontroller-stops-playing-after-5-seconds-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!