2010-01-11 43 views
4

我试图播放视频而不显示控件(音量和其他按钮),但它也应该可以通过录制视频使它们可见。代码如下: theMovie.scalingMode = MPMovieScalingModeAspectFill; theMovie.movi​​eControlMode = MPMovieControlModeDefault; 在这种情况下,它会默认显示控件并粘贴隐藏的视频。在没有控件的iPhone中打开视频

如果我将模式更改为MPMovieControlModeHidden,那么我看不到控件,但也无法将它们带回。

有没有办法启动没有控件的视频,但没有完全禁用它们?

回答

2

好消息德米特里!

我发现了一个解决方案,将为你做好工作,我希望。

其计算方法如下:

  1. 初始化您 MPMoviePlayerController对象的 movieControlMode财产与 MPMovieControlModeHidden
  2. 播放影片
  3. 电影回放后开始设置你的MPMoviePlayerController对象的movieControlMode财产回MPMovieControlModeDefault

第三步可以通过观察MPMoviePlayerContentPreloadDidFinishNotification通知来完成。尽管这可能会导致无法响应的黑屏(或您设置的另一种颜色为MPMoviePlayerController对象的backgroundColor),以防您播放的流式视频实际上由MPMoviePlayerController预加载。我现在没有任何兼容格式的电影在远程服务器上,所以我无法测试这个场景是真实的,因此,我们一直在研究是否有什么可以做到的,以避免这种副作用(尽管我认为如果你发布或找到这样的电影在互联网上的某个地方进行测试,我会这样做)。

+0

工程就像一个魅力。非常感谢! – Dmitry 2010-01-14 23:11:05

+0

不客气。 :) – 2010-01-15 07:40:04

0

提示:如果你不想知道我长长的故事,看看大胆的一段文字,通过阅读文档并查看它提供的示例代码,我真的开始深入研究问题。

你的问题让我感兴趣,所以我从MPMoviePlayerController Class Reference on iPhone Dev Center开始。我没有找到与你遇到的问题有关的任何事情,所以我决定玩这个MPMoviePlayerController示例项目参考 - MoviePlayer。我急于重现您的情况,并尝试通过模拟单个触摸事件或触发手动响应此事件的相同方法来处理它。

但事实证明,苹果的示例项目其实的行为完全像你想要你的。它开始播放视频,叠加控制从一开始就自动地在屏幕外动画。我已经查看了代码,它非常简单,并且不会以任何方式处理您遇到的这个问题。所以,也许这是你做的事情(或者做得不正确)导致问题。检查出来,并回到我们的治疗方法,因为从有用性度量来看,有些人有类似的问题。

+0

我注意到一个设备的行为与模拟器不同。试图运行您在设备上提到的示例项目,并且仍然显示控件。尽管在模拟器中它们是隐藏的。 我在3.1.2上的几款设备 - iPhone和iPod Touch上都试过 - 都一样。 但我知道这应该是可能的,因为在某些游戏中,比如斯巴达英雄,他们的行为完全符合我的要求。 任何想法? – Dmitry 2010-01-13 13:07:32

+0

好吧,理解...我仍然有兴趣找到你的问题的答案,所以我会尝试实现我提到的触摸模拟想法,并在iPhone上测试它(我有3G 3.1.2)。 – 2010-01-13 17:09:11