首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 11:有可能阻止屏幕录音吗?

iOS 11:有可能阻止屏幕录音吗?
EN

Stack Overflow用户
提问于 2017-09-06 10:15:44
回答 2查看 5.5K关注 0票数 6

我有一个播放视频的应用程序,我不希望人们使用新的iOS-11功能来录制这些视频并将其公之于众。这个特性被描述为这里

我找不到任何文件,关于我的应用程序的选项,以防止用户录制它。

有人能帮我找到任何与此有关的东西吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-17 07:34:36

我将在此发布苹果开发人员技术支持(DTS)的官方回应:

虽然无法阻止屏幕记录,但作为iOS 11的一部分,应用程序可以在UIScreen上使用新的API来知道屏幕何时被捕获:

屏幕的内容可以记录、镜像、通过AirPlay发送或以其他方式克隆到另一个目的地。当屏幕的捕获状态发生变化时,UIKit会发送UIScreenCapturedDidChange通知。

通知的对象是UIScreen对象,其isCaptured属性更改。没有userInfo字典。然后,应用程序可以处理此更改,并防止以任何适合您使用的方式捕获应用程序内容。

哈哈!

票数 14
EN

Stack Overflow用户

发布于 2019-01-30 18:07:54

该特性可在iOS11上及以上使用。最好把它放在didFinishLaunchingWithOptions里面

Objective语法

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
  if (@available(iOS 11.0, *)) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(screenCaptureChanged) name:UIScreenCapturedDidChangeNotification object:nil];
    }

    return YES;
 }




-(void)screenCaptureChanged{

if (@available(iOS 11.0, *)) {

    BOOL isCaptured = [[UIScreen mainScreen] isCaptured];// will keep on checking for screen recorder if it is runnuning or not.

    if(isCaptured){

        UIView *colourView = [[UIView alloc]initWithFrame:self.window.frame];

        colourView.backgroundColor = [UIColor blackColor];

        colourView.tag = 1234;

        colourView.alpha = 0;

        [self.window makeKeyAndVisible];

        [self.window addSubview:colourView];

        // fade in the view

        [UIView animateWithDuration:0.5 animations:^{

            colourView.alpha = 1;

        }];

    }else{

        // grab a reference to our coloured view

        UIView *colourView = [self.window viewWithTag:1234];

        // fade away colour view from main view

        [UIView animateWithDuration:0.5 animations:^{

            colourView.alpha = 0;

        } completion:^(BOOL finished) {

            // remove when finished fading

            [colourView removeFromSuperview];

        }];

    }

} else {

    // Fallback on earlier versions

    // grab a reference to our coloured view

    UIView *colourView = [self.window viewWithTag:1234];

    if(colourView!=nil){

        // fade away colour view from main view

        [UIView animateWithDuration:0.5 animations:^{

            colourView.alpha = 0;

        } completion:^(BOOL finished) {

            // remove when finished fading

            [colourView removeFromSuperview];

        }];

    }

}

}

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46072628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档