相机闪光灯不工作



我正试图为果酱做一个扩展,它可以打开和关闭iPhone中的相机闪光灯。我指的是这个关于使用相机闪光灯的答案。我已经写了他提到的代码[device setTorchMode:AVCaptureTorchModeOn];也被调用了。但是闪电没有反应,好像什么都没发生过。有什么我需要做的,使它作为一个静态库工作,这样我就可以使用它在我的扩展?

更新:-
我使用iOS- sdk 6.1来编译扩展,并在iPhone 4 (iOS版本4.3.1)上进行测试。但现在我在iPhone 5 (iOS版本6.0.0)上进行测试,现在闪光灯打开了,但没有关闭。我想这可能有帮助。

您复制的代码可能有错误。试试以下命令:

-(void)turnOnFlash
{
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        if ([device hasTorch]) {
            [device lockForConfiguration:nil];
            [device setTorchMode:AVCaptureTorchModeOff];
            [device unlockForConfiguration];
        }
}

我不知道为什么,但是下面的代码对我有效。

void TurnFlashOn_platform(bool turnOn) { 
    AVCaptureDevice* device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch]){
        [device lockForConfiguration:nil]; //you must lock before setting torch mode
        [device setTorchMode:turnOn ? AVCaptureTorchModeOn : AVCaptureTorchModeOff];
        [device unlockForConfiguration];
    }
}

我猜一定是一些打字错误。不管怎样谢谢你。

使用此功能打开和关闭闪光灯

#import <AVFoundation/AVFoundation.h>

- (void) turnTorchOn: (bool) on {
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if ([device hasTorch] && [device hasFlash]){
        [device lockForConfiguration:nil];
        if (on) {
            [device setTorchMode:AVCaptureTorchModeOn];
            [device setFlashMode:AVCaptureFlashModeOn];
            torchIsOn = YES;
        } else {
            [device setTorchMode:AVCaptureTorchModeOff];
            [device setFlashMode:AVCaptureFlashModeOff];
            torchIsOn = NO;            
        }
        [device unlockForConfiguration];
    }
}
}

相关内容

  • 没有找到相关文章

最新更新