MPMoviePlayerController 在 5 秒后停止播放 - Swift

Posted

技术标签:

【中文标题】MPMoviePlayerController 在 5 秒后停止播放 - Swift【英文标题】:MPMoviePlayerController Stops Playing After 5 seconds - Swift 【发布时间】:2015-03-31 01:49:32 【问题描述】:

我正在尝试使用 MPMoviePlayerController 播放一个视频,它可以正常加载,但 5 秒后会中断。我找到了这篇文章,但它并不真正适用于 swift。

MPMoviePlayerController stops playing the video after 5s

这是我的代码。

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)

    


【问题讨论】:

您的视频是直播还是点播?如果没有,请使用 MPMovieSourceType.File 代替 MPMovieSourceType.Streaming。 【参考方案1】:

您的moviePlayer 会超出范围吗?您是否尝试过将其设为成员变量?

moviePlayerviewDidLoad 的局部变量,所以一旦该函数完成,我看不出有任何理由说明您的播放器不会被释放。

如果您改为将其设为类的变量,则其生命周期将延长以匹配您的类的生命周期。

类似

class ViewController: UIViewController 

var player: MPMoviePlayerController?

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

【讨论】:

节奏拳手非常感谢您的回复。我是自学的,还在学习。我不确定你是什么意思。您能否提供更多背景信息?我非常感谢您提供的任何智慧。 你就是男人!!!那完全奏效了。我离实现在 m3u8 视频中使用定时元数据的目标又近了一步。如果您有时间,请通过我的Other Thread 停下来。我真的很感谢你的时间。 对不起。我以为我已经这样做了。感谢您引起我的注意。再来一次。谢谢! 没问题!我会看看你的另一个线程。看起来很有趣。 有节奏的。我只是想更新您,在我的另一篇文章中,我的代码现在不再崩溃,但我仍然无法提取元数据以获取任何有用的信息。我觉得我超级接近。再次感谢您的所有帮助。

以上是关于MPMoviePlayerController 在 5 秒后停止播放 - Swift的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MPMoviePlayerController 上处理多个 SRT 文件

在 MPMoviePlayerController 上执行捏合手势时屏幕黑屏

在 UITableViewCell 中嵌入 MPMoviePlayerController

MPMoviePlayerController 在影片结尾更改控件样式

后台的 MPMoviePlayerController / AVAudioSession 在来电后不会重新开始播放

MPMoviePlayerController 在启动前显示空白屏幕?