加载多个MPMoviePlayerControllers并将其正确设置为空闲状态,而不会出现崩溃和消失的控件

时间:2012-04-12 21:04:34

标签: iphone mpmovieplayercontroller

所以,我已经阅读了文档并且意识到了这一点:Multiple MPMoviePlayerControllers on iOS 3.2/4.0(同样,文档我的意思是苹果的)

,不幸的是调试这是地狱bc:Bootstrap Server Error in Xcode IPHONE

因此,每运行5次左右,我必须重启机器。

但主要的问题是,我正在加载很多容器(只是视图)。在这些容器中,可能有一些MPMoviePlayerController,我把它变成了一个自定义类。无论如何,它的工作原理,播放电影就好了。

在任何给定时间,屏幕上最多可能有三个。 (我使用分页,卸载远处的分页)。因此,可以制作3部电影,这些电影都与下载的数据相关联。

他们玩,但当然,一次只能玩一个。不是问题。只有一个包含视图的活动。

当视图更改“页面”(它是UIScrollView)时,我手动将“局外人”设置为非活动状态。本质上,它在MPMoviePickerController上调用“stop”。这会阻止它,但我无法恢复。控件字面上消失了,我无法恢复。 (iOS Bug?)

所以我打电话给Pause。同样的事情。

我回去玩它,它不会播放。

这是一个有趣的,暂停一个然后去玩另一个。崩溃。 AVPlayerItem无法一次播放2的东西。我已经编程了自定义AV电影播放器​​,因为需要2部电影或诸如此类,如果这不起作用,即将再次这样做。 Anywho ...为什么两个控制器使用相同的玩家项目,我只能猜测Apple在一个非常糟糕的地方使用单身人士。

因此,苹果文档明确指出我可以加载任意多个,但只能播放一个。不幸的是,它没有说明如何正确地暂停它们,因为控件消失了。

任何人都知道这是一个错误吗?或者除了暂停和停止尝试之外还有什么?

如果没有,我可能会使用AV的东西。无论如何,如果不是为了重新开始,我会在这一刻尝试某种形式的简历,试图得到答案而不仅仅是一个问题。感谢您的任何提示/建议!

如果我找到它会让所有人知道

1 个答案:

答案 0 :(得分:0)

好的,所以这是解决问题的一种奇怪方式,基本上是按常规做的。我的自定义视图卸载整个控制器,然后将其设置为nil(如果你没有设置为nil,即使意图重新加载,也不可能在没有崩溃的情况下测试它。)

所以,一旦我的视图在屏幕外,我发送“自己卸载”消息。它缓存了URL的名称,然后当我将其设置为活动时,它会重新加载并重新分配所有内容。

一切看起来都很好,不幸的是我不知道我会做什么,除了放置一个叠加层,如果我在屏幕上都有它们。这真的看起来很顺利,因为我的东西是屏幕外的。

为此实例解决了问题。对于任何想要使用AVPlayer的人,我都可以推荐。在您理解使用layerClass更改底层,添加项目并记住正确执行内存之后,这并不难。在文档中复制apple的示例代码...

并准备搞乱纵横比...

感谢您的评论!