Sur*_*mas 8 camera background objective-c flashlight ios8
嗨我正在使用基于位置的应用程序,并希望在后台使用iphone相机手电筒.不幸的是,手电筒只在前台工作,即使代码正在执行,它也会在后台自动关闭闪光灯.
我使用的代码只在前台工作
#import <AVFoundation/AVFoundation.h>
//flashcode
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice");
if (captureDeviceClass != nil) {
AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
if ([device hasTorch] && [device hasFlash]){
[device lockForConfiguration:nil];
if (device.torchMode == AVCaptureTorchModeOff)
{
[device setTorchMode:AVCaptureTorchModeOn];
[device setFlashMode:AVCaptureFlashModeOn];
//torchIsOn = YES;
}
else
{
[device setTorchMode:AVCaptureTorchModeOff];
[device setFlashMode:AVCaptureFlashModeOff];
// torchIsOn = NO;
}
[device unlockForConfiguration];
}
}
Run Code Online (Sandbox Code Playgroud)
Que*_*yot 12
这是正常行为.
当您的应用在后台时,Apple的沙盒将不允许您保持闪光灯开启.
除非我们谈论越狱应用程序,否则没有解决方法.
编辑:
Apple对其系统的API使用非常严格.特别是在以下方面:
- 用户隐私
- 电池寿命
- 用户体验
在手电筒的情况下,最后两个项目是相关的.Apple不会让应用程序在不在前台时耗尽电池,并且iOS用户习惯于手电筒,相机,麦克风......在前往后台时立即被禁用(某些后台模式下麦克风除外)例).
要回答关于您的初始帖子的评论,iOS会控制您的硬件.因此,由于Apple决定他们不希望灯光在用户关闭应用程序时保持亮起,因此iOS会在您的应用程序进入后台时关闭闪光灯.您的应用无权阻止它.
| 归档时间: |
|
| 查看次数: |
4405 次 |
| 最近记录: |