在搭载iPad 2或iPhone 4S的iOS 5上,用户可以在苹果电视和AirPlay上启用屏幕镜像。如何防止我的应用以这种方式被镜像?有什么方法可以检测到这种镜像正在发生,这样我就可以防止我的内容被镜像吗?
这样做的原因是因为我有法律不允许在电视屏幕上显示的内容。
发布于 2011-12-08 06:30:40
这是一个非常非常糟糕的想法,我讨厌它,因为你在限制你的用户。也就是说,AirPlay镜像的工作方式与连接VGA/HDMI适配器的方式相同,当您连接适配器时,您可以在“第二个监视器”上显示您想要的任何内容。如果你想“阻止”镜像,你可以将外部显示器的窗口设置为空白/纯黑色视图。
大多数iOS应用程序在其生命周期中只创建和使用一个窗口。此窗口跨越设备的整个主屏幕,并在应用程序生命周期的早期从应用程序的主nib文件加载(或以编程方式创建)。但是,如果应用程序支持使用外部显示器进行视频输出,则它可以创建一个附加窗口来在该外部显示器上显示内容。所有其他窗口通常由系统创建,并且通常是为了响应特定事件而创建的,例如来电。
查看View Programming Guide for iOS,特别是Windows部分和Displaying Content on an External Display
发布于 2015-05-03 06:24:53
只需在此处添加完成这项非常简单工作的代码
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];
}https://stackoverflow.com/questions/8423476
复制相似问题