Ios 在触摸控制样式MPMovieControlStyleEmbedded中的全屏按钮后,将视图添加到MPMoviePlayerController视图

Ios 在触摸控制样式MPMovieControlStyleEmbedded中的全屏按钮后,将视图添加到MPMoviePlayerController视图,ios,ipad,mpmovieplayercontroller,fullscreen,watermark,Ios,Ipad,Mpmovieplayercontroller,Fullscreen,Watermark,我有一个iPad应用程序,在屏幕的上半部分有一个电影预览视图,在屏幕的下半部分有缩略图。当用户点击缩略图时,该电影开始使用控件样式为MPMovieControlStyleEmbedded的MPMoviePlayerViewController在电影预览视图中播放。嵌入式样式具有内置功能,允许用户点击全屏按钮以全屏显示电影 以上所有功能都很好,但我希望在预览和全屏视图中始终在电影上显示水印。当我向vcMoviePlayer.view添加标签时,水印在预览视图中正确显示,但在按下全屏按钮后,我无法使

我有一个iPad应用程序,在屏幕的上半部分有一个电影预览视图,在屏幕的下半部分有缩略图。当用户点击缩略图时,该电影开始使用控件样式为MPMovieControlStyleEmbedded的MPMoviePlayerViewController在电影预览视图中播放。嵌入式样式具有内置功能,允许用户点击全屏按钮以全屏显示电影


以上所有功能都很好,但我希望在预览和全屏视图中始终在电影上显示水印。当我向vcMoviePlayer.view添加标签时,水印在预览视图中正确显示,但在按下全屏按钮后,我无法使该标签在全屏模式下显示在电影上。当电影播放器发送MPMoviePlayerIdentiterFullScreenNotification但仍不显示时,我正在将标签添加到vcMoviePlayer.view(确保将标签放在前面)。还有人见过这种行为吗?有人知道如何在点击全屏按钮后,在全屏播放的电影上显示视图吗?我花了很多时间试图弄明白这一点,任何帮助都是非常感谢的。谢谢

在全屏模式下,
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];
为了找到添加/删除自定义视图的适当时机,请注册以下通知并在注册的处理程序中执行此操作:


MPMoviePlayerIdentiterFullScreenNotification
MPMoviePlayerMillexitFullScreenNotification

我使用此代码并在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

this:UIWindow*window=[UIApplication sharedApplication].keyWindow;如果(!window){window=[[UIApplication sharedApplication].windows objectAtIndex:0];}对我不起作用,但UIWindow*window=[[UIApplication sharedApplication].windows objectAtIndex:0];我刚刚试过这个,但它不适用于iOS8模拟器。