swift 如何在AVCaptureSession中禁用FaceTime手势React

ljsrvy3e  于 2024-01-05  发布在  Swift
关注(0)|答案(1)|浏览(151)

我发现只有一个问题与FaceTimeReact在这里-Can you access the FaceTime video gesture reactions in code?.一般来说-你可以找到很多关于如何在手机中手动禁用FaceTimeReact的文章(必须是> iPhone 12和IOS >= 17).但令人惊讶的是,它似乎不工作!我试图用给定的方法来禁用这些React(你可以在这里阅读-https://www.macrumors.com/how-to/disable-gesture-based-facetime-reactions/,或在这里-https://www.paubox.com/blog/how-to-turn-off-the-ios-17-and-macos-sonoma-facetime-reactions).禁用后,React不工作在Facetime,但是如果你使用下面的代码检查应用程序内部:

if #available(iOS 17.0, *) {
    if AVCaptureDevice.reactionEffectsEnabled {
        if AVCaptureDevice.reactionEffectGesturesEnabled {
            return true
        }
    }
} else {
    return false
}

字符串
你会注意到,即使React被禁用,此代码也会返回true,如果您使用AVCaptureSession()启动录制会话,您将看到FaceTimeReact。这很奇怪,我无法理解我能做什么,特别是因为我的客户希望禁用此功能,因为应用程序上下文远离此类表达式。
任何建议将不胜感激。
我想一定有一种方法可以在我的应用程序的视频流中禁用FaceTimeReact,但是-老实说-我无法找到解决方案。

jogvjijk

jogvjijk1#

自iOS 17.1.2起

视频手势效果设置为 * 每个应用程序 *。如果您在FaceTime应用程序中禁用它,它也不会在 * 您的应用程序 * 中禁用。
您必须在应用程序中启动视频会话,然后在控制中心中禁用手势效果;在您启动视频会话之前,“视频效果”按钮不会出现在控制中心中。
即使它是一个“每个应用程序”的设置,没有开关,以启用或禁用它在设置应用程序在您的应用程序的设置,所以你不能给予您的用户一个链接到您的设置屏幕,告诉他们禁用它;你必须告诉他们使用控制中心。
(我想每个开发者都同意--苹果在第三方应用程序的API和这个“功能”的实现上真的丢了球。希望他们在未来的操作系统版本中改进它。)

相关问题