我有一个iPad应用程序,在屏幕的上半部分有一个电影预览视图,在屏幕的下半部分有缩略图。当用户点击缩略图时,该电影开始使用具有控件样式MPMovieControlStyleEmbedded的MPMoviePlayerViewController在电影预览视图中播放。嵌入式样式具有内置功能,允许用户轻触全屏按钮以全屏显示电影。
以上所有功能都很好用,但我希望在预览和全屏视图中始终在电影上显示水印。当我向vcMoviePlayer.view添加标签时,水印会在预览视图中正确显示,但在按下全屏按钮后,我无法让该标签在全屏模式下显示在电影上。当电影播放器发送MPMoviePlayerDidEnterFullscreenNotification时,我正在将标签添加到vcMoviePlayer.view (确保将标签放在前面),但它仍然没有出现。还有没有人见过这种行为?有没有人知道如何在点击全屏按钮后,在全屏播放的电影上显示视图?我花了很多时间试图弄清楚这一点,任何帮助我都非常非常感激。谢谢!
发布于 2013-03-25 22:10:37
我使用此代码并在iOS 5和iOS 6上工作
UIWindow *window = [[UIApplication sharedApplication].windows objectAtIndex:0];
UIView * videoView = [[window subviews] lastObject];
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0.0f,0.0f,100.0f,100.0f)];
[videoView addSubview:customView];
在iOS 5上,您必须删除MPMoviePlayerWillExitFullscreenNotification
上的customView
发布于 2012-03-24 02:12:27
在全屏模式下,MPMoviePlayerController
不再使用提供的superview,而是直接在当前(键)窗口中显示自己。
当播放器处于全屏模式时,为了找到你可以把视图放在上面的东西,请执行以下操作:
UIWindow *window = [UIApplication sharedApplication].keyWindow;
if (!window)
{
window = [[UIApplication sharedApplication].windows objectAtIndex:0];
}
现在您可以将您的自定义视图放在该窗口的顶部,当MPMoviePlayerController
处于全屏模式时,该窗口将可见。
UIView *customView = [[UIView alloc] initWithFrame:CGRectMake(0.0f,
0.0f,
100.0f,
100.0f)];
[window addSubview:customView];
为了找到合适的时机添加/删除您的自定义视图,请注册以下通知,并在已注册的处理程序中执行此操作:
MPMoviePlayerDidEnterFullscreenNotification
和MPMoviePlayerWillExitFullscreenNotification
https://stackoverflow.com/questions/9844225
复制相似问题