[英]Problem with the camera flash iphone
我有一個開關,如果我激活它,我打開相機閃光燈,如果你關閉,關閉(默認關閉)
這是我的代碼:
- (void)viewDidAppear:(BOOL)animated
{
if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera] == NO)
return;
picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerCameraCaptureModeVideo];
picker.allowsEditing = NO;
picker.showsCameraControls = NO;
picker.delegate = self;
[self presentModalViewController:picker animated:YES];
}
- (IBAction) onChangeSwitch:(id)sender
{
switch(interruptor.on){
case YES:
picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
break;
case NO:
picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
break;
}
}
在網上看,我看到我的代碼是簡單地轉動閃光燈而不是從iPhone相機啟動或停止火炬。
我已經看到它完成了AVCaptureDevice 打開iPhone上的手電筒/閃光燈 #3367424我現在不知道怎么能適應我的代碼。
有誰知道並給我一個手?
謝謝
- (void)flashLightOn {
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) {
if ([device hasFlash] == YES) {
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOn];
[device unlockForConfiguration];
}
}
}
-(void)flashLightOff {
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
for (AVCaptureDevice *device in devices) {
if ([device hasFlash] == YES) {
[device lockForConfiguration:nil];
[device setTorchMode:AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
}
}
這是我打開和關閉燈(也就是火炬)的方式:
- (void) setTorchOn:(BOOL)isOn
{
AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil]; //you must lock before setting torch mode
[device setTorchMode:isOn ? AVCaptureTorchModeOn : AVCaptureTorchModeOff];
[device unlockForConfiguration];
}
我很確定你需要鏈接到AVFoundation框架。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.