MPMoviePlayerController - 加载电影时捕获网络错误

Posted

技术标签:

【中文标题】MPMoviePlayerController - 加载电影时捕获网络错误【英文标题】:MPMoviePlayerController - catching network errors when loading a movie 【发布时间】:2010-11-10 23:22:55 【问题描述】:

有没有办法捕捉异常(尤其是网络错误 / 没有可用的连接)在使用 MPMoviePlayerController 时?

我特别担心,一旦播放器实例使用initWithURL: 初始化,您就无法知道电影加载是否由于某种原因而失败。

我已经查看了可用的文档并意识到我可以获得 通过

通知 loadState 更改
moviePlayerLoadStateChanged:(NSNotification*)notification.

问题是可用的 loadState 常量不适合错误处理:

MPMovieLoadStateUnknown
MPMovieLoadStatePlayable
MPMovieLoadStatePlaythroughOK
MPMovieLoadStateStalled

(如果您想知道,MPMovieLoadStateStalled 由于某种原因在网络错误期间不会调用它?)

有一个已弃用的 MPMoviePlayerContentPreloadDidFinishNotification 提供带有“错误”键的 userInfo 字典,但对于 ios 3.2 及更高版本没有。

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

最后,我通过订阅 MPMoviePlayerPlaybackDidFinishNotification 并观察 MPMovieFinishReasonPlaybackError 得到了排序。

更多详情在这里https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006953-CH3-SW17

【讨论】:

您好,您可以添加示例代码吗?苹果文档缺少示例,我无法弄清楚如何按照您的建议进行操作。

以上是关于MPMoviePlayerController - 加载电影时捕获网络错误的主要内容,如果未能解决你的问题,请参考以下文章

如何显示 MPMoviePlayerController 控件?

MPMoviePlayerController 隐藏 AirPlay 按钮

MPMoviePlayerController 上的专辑封面

MPMoviePlayerController 已弃用,现在怎么办?

用 MPMoviePlayerController 替换 AVPlayer

“MPMoviePlayerController”的“initialPlaybackTime”不起作用