iphone - 在 Xcode 中调暗 iPhone 5 手电筒应用程序的 LED

标签 iphone ios xcode ios6

我希望使用 slider 选项调暗手电筒的 LED。我知道 Apple 支持 iOS 6 但是,我不确定要使用什么代码。这是我目前在 .m 文件中的代码。

-(IBAction)torchOn:(id)sender;
{
    onButton.hidden = YES;
    offButton.hidden = NO;

    onView.hidden = NO;
    offView.hidden = YES;


    AVCaptureDevice *flashLight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if([flashLight isTorchAvailable] && [flashLight isTorchModeSupported:AVCaptureTorchModeOn])
    {
        BOOL success = [flashLight lockForConfiguration:nil];
        if(success)
        {
            [flashLight setTorchMode:AVCaptureTorchModeOn];
            [flashLight unlockForConfiguration];
        }
    }
}


-(IBAction)torchOff:(id)sender;
{
    onButton.hidden = NO;
    offButton.hidden = YES;

    onView.hidden = YES;
    offView.hidden = NO;

    AVCaptureDevice *flashLight = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    if([flashLight isTorchAvailable] && [flashLight isTorchModeSupported:AVCaptureTorchModeOn])
    {
        BOOL success = [flashLight lockForConfiguration:nil];
        if(success)
        {
            [flashLight setTorchMode:AVCaptureTorchModeOff];
            [flashLight unlockForConfiguration];
        }
    }
}

最佳答案

- (BOOL)setTorchModeOnWithLevel:(float)torchLevel 错误:(NSError **)outError

做你想做的。但是,据我所知,它仅在特定时间间隔 (~0.2) 内更新。

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
[device lockForConfiguration:nil];
[device setTorchModeOnWithLevel:slider.value error:NULL];
[device unlockForConfiguration];

编辑 - 完整示例:

这是一个 UISlider。您需要将一个 IBAction 导出添加到您的 slider 或以编程方式添加一个目标(就像我一样):

UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 280.0f, 40.0f)];
slider.maximumValue = 1.0f;
slider.minimumValue = 0.0f;
[slider setContinuous:YES];
[slider addTarget:self action:@selector(sliderDidChange:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:slider];

然后,响应 slider 的变化:

- (void)sliderDidChange:(UISlider *)slider
{
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    [device lockForConfiguration:nil];
    [device setTorchModeOnWithLevel:slider.value error:NULL];
    [device unlockForConfiguration];
}

关于iphone - 在 Xcode 中调暗 iPhone 5 手电筒应用程序的 LED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13184892/

相关文章:

cocoa - Xcode:是否有位置/标志来阻止类编译?

objective-c - 在 iOS 中逐字符读取文件

ios - 如何检测字符串中的汉字

html - 纯css3视差和移动

ios - iTunes Connect 上的 "There are one or more errors on the page."

iphone - 使用核心图形绘制浮雕弧

ios - 如何用按钮操作替换 self.navigationItem.leftBarButtonItem = self.editButtonItem() }

ios - Xcode - ImageView 不隐藏

iphone - Xcode——删除图像在构建应用程序时仍在构建

iphone - 推送通知未在 App Store 应用程序上注册 - iPhone