在Streaming MPMoviePlayerController上叠加

vic*_*cky 5 iphone overlay mpmovieplayercontroller

我通过苹果"iPhone上的MoviePlayer"的例子

我试图覆盖在mpmovieplayercontroller之上,

它与捆绑的视频剪辑完美配合,

但如果我从网址流式传输视频,它就无法工作.

叠加视图将隐藏在播放器后面.

有没有办法将叠加视图放到前面?

ale*_*x_c 11

MPMoviePlayerController创建自己的窗口并将其设置为关键窗口 - 您可能已经从MoviePlayer示例应用程序中知道这一点.

我不知道为什么,但是当玩家使用流时会出现延迟 - 所以你在初始化玩家后得到的keyWindow可能不是玩家的窗口,因为这似乎是后来添加的.

您可以"欺骗"并使用计时器在几秒钟后获取播放器窗口,并添加叠加层:

[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(addMyOverlay:) userInfo:nil repeats:FALSE]
Run Code Online (Sandbox Code Playgroud)

或者您可以侦听UIWindowDidBecomeKeyNotification事件,并执行相同的操作:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyWindowChanged:) name:UIWindowDidBecomeKeyNotification object:nil];
Run Code Online (Sandbox Code Playgroud)

这两种选择都不是很好(我很想知道一种更简洁的方法),但它完成了工作.

  • 实际上我使用UIWindowDidBecomeKeyNotification而不是计时器,它完美地工作.没有计时器. (3认同)