V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
stuartofmine
V2EX  ›  iOS

iOS 怎样在屏幕录制时,部分组件透明化

  •  
  •   stuartofmine · 2022-03-03 15:11:17 +08:00 · 1772 次点击
    这是一个创建于 786 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在启动屏幕录制时,输入密码框键盘和版权保护的内容 在录屏的视频里会不可见(透明或黑色),但在录屏时却又能被用户看到的。这是怎么实现的,用 iOS 的哪个接口?

    9 条回复    2022-03-04 10:02:06 +08:00
    Lin0936
        1
    Lin0936  
       2022-03-03 15:20:13 +08:00
    observe UIScreen.capturedDidChangeNotification 然后自己实现
    stuartofmine
        2
    stuartofmine  
    OP
       2022-03-03 15:28:04 +08:00
    @Lin0936 检测屏幕录制不是问题。关键是怎么实现 录屏时肉眼能看到的东西,在屏幕录制的视频里看不到。也就是 UIView 一边正常显示,一边告诉系统的屏幕录制功能:“在录屏时别把我录进去”。
    MrdotX
        3
    MrdotX  
       2022-03-03 15:42:45 +08:00
    密码框录屏视频不可见是系统自动实现的,想自己搞出来应该有难度,楼主可以研究下,有答案了分享下
    Lin0936
        4
    Lin0936  
       2022-03-03 15:44:55 +08:00
    @stuartofmine 这个记不太清了,好像是有个 CanvasView 还是什么的 mask 之类的可以用
    fanxiaolu
        5
    fanxiaolu  
       2022-03-03 15:48:06 +08:00
    Leonard
        6
    Leonard  
       2022-03-03 16:01:40 +08:00
    FairPlay Streaming 了解一下
    stuartofmine
        7
    stuartofmine  
    OP
       2022-03-04 10:00:16 +08:00
    @MrdotX 楼下那个链接里方法切实可行,利用 UItextfield 的私有 view 遮罩来实现。自己实现了一遍是可以的。缺点就是利用通过获取指定位置的 UITextField 的 subview 来获取私有 view ,如果后期 UITextField 的 subview 位置变更就要再做处理。
    stuartofmine
        8
    stuartofmine  
    OP
       2022-03-04 10:00:38 +08:00
    @fanxiaolu 谢谢,实现了一下切实可行。
    stuartofmine
        9
    stuartofmine  
    OP
       2022-03-04 10:02:06 +08:00
    @Lin0936 利用_UITextLayoutCanvasView 遮罩实现了,就是有一点风险。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   958 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:27 · PVG 03:27 · LAX 12:27 · JFK 15:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.