【发布时间】:2011-06-11 21:48:27
【问题描述】:
我可以在与-takePicture 拍照之前以编程方式打开相机闪光灯在一部新的 iPhone 4 设备上吗? p>
我正在为 iOS 4 开发一个拍照应用,想在用户拍照之前打开闪光灯,这样他们就可以提前看到闪光灯的效果。 p>
问题似乎是要让闪光灯保持亮起,您需要将torchMode 设置为开启,这只能在“视频模式”(UIImagePickerControllerCameraCaptureModeVideo)下进行,而您只能询问UIImagePickerController 到 takePicture,当它处于“照片模式”时 (UIImagePickerControllerCameraCaptureModePhoto)。
所以,以下工作,但拍照时只显示闪光灯:
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;
picker.mediaTypes = [NSArray arrayWithObjects:@"public.image", nil];
picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
[self presentModalViewController:picker animated:YES];
这也有效(一直显示火炬),但我无法拍照。
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.showsCameraControls = NO;
picker.navigationBarHidden = YES;
picker.toolbarHidden = YES;
picker.mediaTypes = [NSArray arrayWithObjects:(NSString *)kUTTypeMovie, nil];
picker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
picker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;
[self presentModalViewController:picker animated:YES];
当我尝试在此处找到的toggleTorch 代码:Turn on torch/flash on iPhone 时,UIImagePickerController 中似乎没有任何实时视频源。
这些UIImagePickerController 和AVCaptureSession 是否相互兼容?或者你应该选择一个或另一个?
有没有人知道一种解决方法来同时打开闪光灯模式(或torchMode)并能够takePicture?
【问题讨论】:
标签: iphone uiimagepickercontroller