嘿,我想知道如何访问前置摄像头。也许有一些指南吗? 但我不想要所有的按钮等,我只想访问前置摄像头,我不需要拍照或其他任何东西的按钮。
嘿,我想知道如何访问前置摄像头。也许有一些指南吗? 但我不想要所有的按钮等,我只想访问前置摄像头,我不需要拍照或其他任何东西的按钮。
你可以像这样访问前置摄像头:
picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
只需将UIImagePickerController
的cameraDevice
属性设置为UIImagePickerControllerCameraDeviceFront
即可。但是你需要检查设备是否可用。
好的,“Khushbu Shah”所说的是正确的。但实际上,isCameraDeviceAvailable仅适用于iOS 4及以上版本。为了确保只有在前置摄像头存在时才打开它,应使用以下正确的代码块。
UIImagePickerController *ipc = [[UIImagePickerController alloc] init];
ipc.delegate = self;
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
{
ipc.sourceType = UIImagePickerControllerSourceTypeCamera;
if([UIImagePickerController respondsToSelector:@selector(isCameraDeviceAvailable:)])
{ //check if iphone 4 and above
if([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront])
{
ipc.cameraDevice=UIImagePickerControllerCameraDeviceFront;
}
}
}
[ipc release];
您应该启动一个AVCaptureSession并指定要使用哪个AVCaptureDevice(在您的情况下为AVCaptureDevicePositionFront)。
开始查找AVCaptureSession文档,您就会更好地了解该怎么做。
你需要做的第一件事是检测你的设备是否有前置摄像头。为此,你需要遍历视频设备。
尝试使用UIImagePickerController
的这种方法:
+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice
这是一个类方法,UIImagePickerControllerCameraDevice 可以有两个值:
- UIImagePickerControllerCameraDeviceRear
- UIImagePickerControllerCameraDeviceFront
if( [UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront]){
// do something
}
picker.cameraDevice=UIImagePickerControllerCameraDeviceFront;
希望这回答了你的问题。 - Khushbu Shah