什么是前置摄像头的设备UniqueID?

Kno*_*del 13 avfoundation ios

我正在尝试编写一个涉及前后摄像头并在它们之间切换的应用程序.据我所知,在addVideoInput方法中,我必须更改ID

    AVCaptureDevice *videoDevice = [AVCaptureDevice deviceWithUniqueID:(NSString *)deviceUniqueID];
Run Code Online (Sandbox Code Playgroud)

但是哪些NSStrings是那些ID?

或者,如果应该以其他方式完成,请提出建议.

谢谢你的帮助!

Kno*_*del 28

好的,我设法找到了解决方案.我不知道它是对还是错,它取自http://www.bunnyhero.org/2010/08/15/turn-your-iphone-into-a-vampire-with-avfoundation-and-ios -4 /

只是用

AVCaptureDevice *captureDevice = [self frontFacingCameraIfAvailable];
Run Code Online (Sandbox Code Playgroud)

其中frontFacingCameraIfAvailable是:

-(AVCaptureDevice *)frontFacingCameraIfAvailable
{
    NSArray *videoDevices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeVideo];
    AVCaptureDevice *captureDevice = nil;
    for (AVCaptureDevice *device in videoDevices)
    {
        if (device.position == AVCaptureDevicePositionFront)
        {
            captureDevice = device;
            break;
        }
    }

    //  couldn't find one on the front, so just get the default video device.
    if ( ! captureDevice)
    {
        captureDevice = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
    }

    return captureDevice;
}
Run Code Online (Sandbox Code Playgroud)