在iOS 5上阻止AirPlay镜像

时间:2011-12-07 22:23:44

标签: iphone ios ipad airplay apple-tv

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

这样做的原因是因为我有合法的内容,我不能在电视屏幕上显示。

2 个答案:

答案 0 :(得分:5)

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

  

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

查看View Programming Guide for iOS,特别是Windows部分和Displaying Content on an External Display

答案 1 :(得分:2)

只需添加代码来完成这个非常简单的工作

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];
    }