我正在为 iPhone 4/4S 制作密码应用程序。当用户输入密码 3 次失败时,我想使用 iPhone 的前置摄像头制作用户的电影。这并不是什么新鲜事,应用商店中的许多应用都在做类似的事情。给这个人拍照,获取他的 GEO 坐标等。
我面临的挑战是,当我尝试设置电影录制时,相机覆盖会占据整个屏幕。我真正想做的是让用户仍然看到登录屏幕和按钮,但偷偷录制并制作用户的电影。有没有办法我可以做到这一点?
这是我正在使用的代码。
在我的 *.h 文件中
@interface v1InstantController : UIViewController <UIImagePickerControllerDelegate>
{
UIImagePickerController *picpicker;
}
@property (nonatomic, retain) UIImagePickerController *picpicker;
在我的 *.m 文件中
-(IBAction) makeMovieNow
{
picpicker = [[UIImagePickerController alloc] init];
picpicker.delegate = self;
picpicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picpicker.sourceType = UIImagePickerControllerSourceTypeCamera;
picpicker.showsCameraControls = NO;
picpicker.navigationBarHidden = YES;
picpicker.wantsFullScreenLayout = NO;
picpicker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
picpicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;
picpicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
picpicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
picpicker.videoQuality = UIImagePickerControllerQualityTypeHigh;
picpicker.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
//The problem is right here!
//picpicker.cameraViewTransform = CGAffineTransformScale(picpicker.cameraViewTransform, 0.01, 0.01);
[self presentModalViewController:picpicker animated:YES];
[picpicker startVideoCapture];
}
问题就在这里“presentModalViewController:picpicker”。当我使用它时,它会启动带有虹膜飞溅等的相机屏幕,并显示整个屏幕上正在记录的内容。即使我使用 cameraViewTransform,它仍然会禁用页面上的任何内容并将此相机叠加层放在页面中间。(有一个非常小的相机覆盖)我不希望用户知道我正在录制并且希望他认为它照常营业。即让他继续尝试在页面上输入密码失败。