我正在使用 AVCaptureDevice 的实例方法“isFlashModeSupported”,如下所示:
NSArray *captureDeviceType = @[AVCaptureDeviceTypeBuiltInWideAngleCamera,AVCaptureDeviceTypeBuiltInMicrophone];
AVCaptureDeviceDiscoverySession *captureDevice = [AVCaptureDeviceDiscoverySession discoverySessionWithDeviceTypes:captureDeviceType mediaType:AVMediaTypeVideo position:AVCaptureDevicePositionUnspecified];
NSArray *deviceList = [captureDevice devices];
AVCaptureDevice *selectedCamera = [deviceList objectAtIndex:(NSUInteger)currentCameraDeviceIndex];
if ( [selectedCamera isFlashModeSupported:AVCaptureFlashModeAuto] ){
[selectedCamera setFlashMode:AVCaptureFlashModeAuto]; // AVCaptureFlashModeAuto
}
但在 iOS 10 中isFlashModeSupported
and setFlashMode
方法已被弃用。
Xcode 建议使用 AVCapturePhotoOutput 的 -supportedFlashModes 代替。
知道如何使用上述方法吗?
提前致谢
使用此代码。这非常有效。
AVCaptureSession *session = [[AVCaptureSession alloc] init];
[session setSessionPreset:AVCaptureSessionPresetPhoto];
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
AVCaptureDeviceInput *deviceInput = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
if ([device hasFlash]) {
[device lockForConfiguration:nil];
device.flashMode = AVCaptureFlashModeAuto;
[device unlockForConfiguration];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)