簡體   English   中英

相機閃光燈問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM