如何从 AVCaptureSession captureStillImageAsynchronouslyFromConnection 中删除屏幕 "flash" 效果

How to remove screen "flash" effect from an AVCaptureSession captureStillImageAsynchronouslyFromConnection

我看到无法删除 avcapturesession captureStillImageAsynchronouslyFromConnection 附带的快门声音,但我没有看到有人试图删除它附带的那种屏幕闪光灯。

你拍照,屏幕变亮一秒钟(不是真正的闪光灯)然后 returns 到正常亮度。

看起来 Instagram 正在使用 avcapturesession 并且没有那个屏幕闪光。

https://developer.apple.com/library/content/samplecode/AVCam/Introduction/Intro.html

我查看了这个 ^,这是我在我的应用程序中使用的内容,但我没有看到任何地方引用它。我认为这是一些 属性 我必须搞砸的事情?

感谢任何帮助。

首先,您不应该使用拥有 captureStillImageAsynchronouslyFromConnection 方法的 AVCaptureStillImageOutput,因为它已被弃用。请改用 AVCapturePhotoOutput

其次,您引用的 Apple 示例在 CameraViewController.swift 中有以下代码片段实现了 'flashing':

self.previewView.videoPreviewLayer.opacity = 0
UIView.animate(withDuration: 0.25) { [unowned self] in
    self.previewView.videoPreviewLayer.opacity = 1
}

所以只要 remove/comment 出来就好了。