1

所以,我已经阅读了文档并且知道这一点:Multiple MPMoviePlayerControllers on iOS 3.2/4.0(另外,通过文档我是指苹果的)

不幸的是,调试这是地狱 bc:Xcode IPHONE 中的引导服务器错误

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

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

在任何给定时间,屏幕上最多可能有三个。(我使用分页,并卸载远处的那些)。所以有可能有 3 部电影,都连接到下载的数据。

他们玩,但当然,一次只玩一个。不是问题。只有一个包含视图处于活动状态。

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

所以我改为叫暂停。一样。

我回去玩它,它不会玩。

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

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

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

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

如果我找到它会告诉大家

4

1 回答 1

0

好的,所以这是一种奇怪的解决方法,基本上是照常做。我的自定义视图卸载整个控制器,然后将其设置为 nil(如果您不设置为 nil,即使打算重新加载,也无法在不崩溃的情况下对其进行测试)。

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

一切看起来都很好,不幸的是我不知道我会做什么,除了放置一个覆盖,如果我把它们都放在屏幕上。这真的只是看起来很流畅,因为我的东西不在屏幕上。

解决了这个例子。我可以向任何想要使用 AVPlayer 的人推荐。了解了使用layerClass来改变底层,添加item,记得做好记忆后,就不难了。在文档中复制苹果的示例代码...

并准备弄乱纵横比...

感谢您的评论!

于 2012-04-13T18:40:56.917 回答