在ios5上阻止AirPlay镜像



在iOS 5和iPad 2或iPhone 4S上,用户可以启用他们的Apple TV和AirPlay的屏幕镜像。如何防止我的应用程序以这种方式被镜像?是否有任何方法可以检测到此镜像正在发生,以便我可以阻止我的内容被镜像?

这样做的原因是因为我的内容在法律上是不允许在电视屏幕上显示的

这是一个非常非常糟糕的主意,我讨厌它,因为你在限制用户。也就是说,AirPlay镜像的工作方式与连接VGA/HDMI适配器相同,当您连接适配器时,您可以在"第二台显示器"上显示您想要的任何内容。如果你想"阻止"镜像,你可以将外部显示器的窗口设置为空白/纯黑视图。

大多数iOS应用程序在其生命周期中只创建和使用一个窗口。此窗口横跨设备的整个主屏幕,并在应用程序生命周期的早期从应用程序的主nib文件加载(或以编程方式创建)。但是,如果应用程序支持使用外部显示器进行视频输出,则可以创建一个额外的窗口来在该外部显示器上显示内容。所有其他窗口通常由系统创建,并且通常是为响应特定事件而创建的,例如来电。

查看iOS的视图编程指南,特别是Windows部分和在外部显示器上显示内容

为完成这个非常简单的工作添加代码这里

if ([[UIScreen screens] count] > 1)
    {
        UIScreen *secondScreen = [[UIScreen screens] objectAtIndex:1];
        CGRect screenBounds = secondScreen.bounds;
        UIWindow *secondWindow = [[UIWindow alloc]initWithFrame:screenBounds];
        secondWindow.screen = secondScreen;
        UIView *anyView= [[UIView alloc]initWithFrame:screenBounds];
        anyView.backgroundColor= [UIColor blackColor];
        [secondWindow addSubview:anyView];
    }

最新更新