我有一个iPad应用,它在屏幕的上半部分有一个电影预览视图,在屏幕的下半部分有缩略图。当用户使用控件样式为MPMovieControlStyleEmbedded的MPMoviePlayerViewController点击电影在电影预览视图中开始播放的缩略图时。嵌入式样式具有内置功能,允许用户点击全屏按钮以全屏显示电影。
以上所有功能都很有效,但我想在预览和全屏视图中始终在电影上显示水印。当我向vcMoviePlayer.view添加标签时,水印在预览视图中正确显示,但是在按下全屏按钮后,我无法在全屏模式下显示该标签。当电影播放器发送MPMoviePlayerDidEnterFullscreenNotification时,我将标签添加到vcMoviePlayer.view(确保将标签放在前面),但它仍然没有出现。有没有人见过这种行为?点击全屏按钮后,是否有人知道如何在全屏播放的电影上显示视图?我已经烧了很多时间试图解决这个问题,非常感谢任何帮助。谢谢!
答案 0 :(得分:4)
我使用此代码并适用于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
答案 1 :(得分:3)
在全屏模式下,MPMoviePlayerController
不再使用提供的超级视图,而是直接在当前(关键)窗口显示。
为了找到可以在播放器处于全屏模式时开启视图的内容,请执行以下操作:
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