访问前置摄像头。iPhone/iPod 4

5

嘿,我想知道如何访问前置摄像头。也许有一些指南吗? 但我不想要所有的按钮等,我只想访问前置摄像头,我不需要拍照或其他任何东西的按钮。

5个回答

17

3

2

好的,“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];

2

您应该启动一个AVCaptureSession并指定要使用哪个AVCaptureDevice(在您的情况下为AVCaptureDevicePositionFront)。

开始查找AVCaptureSession文档,您就会更好地了解该怎么做。


嘿,你有没有使用AVCaptureDevice访问前置摄像头的示例代码? - Prabh

1

你需要做的第一件事是检测你的设备是否有前置摄像头。为此,你需要遍历视频设备。

尝试使用UIImagePickerController的这种方法:

+ (BOOL)isCameraDeviceAvailable:(UIImagePickerControllerCameraDevice)cameraDevice

这是一个类方法,UIImagePickerControllerCameraDevice 可以有两个值:

- UIImagePickerControllerCameraDeviceRear
- UIImagePickerControllerCameraDeviceFront

示例代码:

if( [UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront]){
   // do something
}

你只需要打开相机,将其设置为前置模式而不是后置模式,因此请在第一次调用选择器的方法中编写以下内容: picker.cameraDevice=UIImagePickerControllerCameraDeviceFront;希望这回答了你的问题。 - Khushbu Shah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接