【问题标题】:How to handle invalid url with MPMoviePlayerController如何使用 MPMoviePlayerController 处理无效 url
【发布时间】:2017-05-04 07:58:00
【问题描述】:

我正在开发的应用程序使用 MPMoviePlayerController 在远程 url 播放视频。当我重用播放器播放多个视频并且 url 未指向视频时,控制器不会发回任何通知。我试过 MPMoviePlayerPlaybackDidFinishNotification、MPMoviePlayerPlaybackStateDidChangeNotification 和 MPMoviePlayerLoadStateDidChangeNotification。没有一个被发送。

我还尝试执行自定义超时功能并调用播放器的停止功能,如下所示。但是,什么也没有发生。 MPMoviePlayerController 似乎死在那里,什么也不做。

[self performSelector:@selector(checkTimeout) withObject:theMovie afterDelay:15];

-(void) checkTimeout {
    [self.moviePlayer stop];
}

有人知道如何用 MPMoviePlayerController 处理无效的 url 吗?

【问题讨论】:

  • 显示一些额外的代码

标签: ios objective-c mpmovieplayercontroller


【解决方案1】:

我自己找到了一种解决方案。

似乎 MPMoviePlayerController 在播放多个网址时出现问题。如果第二个 url 未指向视频或无效,则播放器不会执行任何操作。因此,我最终为每个 url 创建了一个新的 MPMoviePlayerController 实例并监听 MPMoviePlayerPlaybackDidFinishNotification。

【讨论】:

    【解决方案2】:

    如果您没有收到有关无效网址的通知,那么您应该运行一个持续时间为 max(initialplaybacktime, 0) 的计时器,一旦您在这段时间内没有收到MPMoviePlayerReadyForDisplayDidChange notification,就会生成一个视频不可用的错误.

    【讨论】:

    • UI 中添加了播放器并播放了至少一个视频。您的解决方案在这种情况下有效吗?
    • 无论有多少视频已经加载,播放器是否添加到UI,一旦在播放器中加载一个新的url,再次重新安排计时器。
    猜你喜欢
    • 1970-01-01
    • 2011-10-03
    • 2010-10-28
    • 2011-12-07
    • 2012-01-01
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多