Ios 如何使用闪光灯在定制相机上拍照?
我到处都找过了,我不知道如何在拍照时切换闪光灯,它会像iPhone相机一样闪烁4次 我用这个功能来切换闪光灯Ios 如何使用闪光灯在定制相机上拍照?,ios,iphone,swift,camera,avcapturesession,Ios,Iphone,Swift,Camera,Avcapturesession,我到处都找过了,我不知道如何在拍照时切换闪光灯,它会像iPhone相机一样闪烁4次 我用这个功能来切换闪光灯 func toggleFlash() { let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) if (device.hasTorch) { device.lockForConfiguration(nil) if (device.torchMode
func toggleFlash() {
let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
if (device.hasTorch) {
device.lockForConfiguration(nil)
if (device.torchMode == AVCaptureTorchMode.On) {
device.torchMode = AVCaptureTorchMode.Off
} else {
device.setTorchModeOnWithLevel(1.0, error: nil)
}
device.unlockForConfiguration()
}
}
我用这个功能来拍照
func didPressTakePhoto(){
if let videoConnection = stillImageOutput?.connectionWithMediaType(AVMediaTypeVideo){
videoConnection.videoOrientation = AVCaptureVideoOrientation.Portrait
stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {
(sampleBuffer, error) in
if sampleBuffer != nil {
var imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
var dataProvider = CGDataProviderCreateWithCFData(imageData)
var cgImageRef = CGImageCreateWithJPEGDataProvider(dataProvider, nil, true, kCGRenderingIntentDefault)
var image:UIImage!
if self.camera == true {
image = UIImage(CGImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.Right)
} else {
image = UIImage(CGImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.LeftMirrored)
}
self.tempImageView.image = image
self.tempImageView.hidden = false
}
})
}
}
这是一个非常混乱的方式。不干净
func didPressTakePhoto(){
toggleFlash()
sleep(1)
toggleFlash()
if let videoConnection = stillImageOutput?.connectionWithMediaType(AVMediaTypeVideo){
videoConnection.videoOrientation = AVCaptureVideoOrientation.Portrait
stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {
(sampleBuffer, error) in
if sampleBuffer != nil {
toggleFlash()
var imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
var dataProvider = CGDataProviderCreateWithCFData(imageData)
var cgImageRef = CGImageCreateWithJPEGDataProvider(dataProvider, nil, true, kCGRenderingIntentDefault)
var image:UIImage!
if self.camera == true {
image = UIImage(CGImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.Right)
} else {
image = UIImage(CGImage: cgImageRef, scale: 1.0, orientation: UIImageOrientation.LeftMirrored)
}
self.tempImageView.image = image
self.tempImageView.hidden = false
}
})
}
}
这很混乱,只是一个想法。
您也可以使用NSTimer来启动两次。我想这里已经给出了答案:@charlestruck不,我正在尝试制作它,以便在拍照时可以合并闪光灯。谁的抱歉!我以为你的意思是它不起作用了!但是时机有点不合适。我一直在瞎弄睡眠,但我一直没能把它做好。我该怎么设置呢?你可以尝试更改
,我去试试!另外,我似乎无法将睡眠设置为双倍。闪光灯似乎变慢了。这张照片是在闪光灯结束前拍摄的。更新代码。基本上在按下按钮时将其打开,然后在拍摄图像时将其关闭。