Код: Выделить всё
bool
addDevice(AVCaptureSession *session, bool front)
{
AVCaptureDevicePosition position = front? AVCaptureDevicePositionFront: AVCaptureDevicePositionBack;
AVCaptureDevice *device;
AVCaptureDeviceInput *input;
NSError *error;
device = [AVCaptureDevice defaultDeviceWithDeviceType:AVCaptureDeviceTypeBuiltinWideAngleCamera mediaType:AVMediaTypeVideo position:position];
if ( !device ) {
NSLog(@"Cannot create %s device", front? "front" : "back");
return false;
}
input = [AVCaptureDeviceInput deviceInputWithDevice:device error&error];
if ( !input ) {
NSLog(@"Cannot create input for %s device: %@", front? "front" : "back", [error localizedDescription]);
return false;
}
if ( ![session canAddInput:input] ) {
NSLog(@"Cannot add input for %s device", front? "front" : "back");
return false;
}
[session addInput:input];
return true;
}
AVCaptureSession *
startSession()
{
AVCaptureMultiCamSession *session;
session = [AVCaptureMultiCamSession new];
if ( !addDevice(session, true) || !addDevice(session, false) ) {
return nil;
}
// add output
[session startRunning];
return session;
}
Я попробовал изменить порядок добавления камер на обратный, но затем добавить переднюю камеру невозможно. . Итак, проблема, похоже, заключается в добавлении нескольких входов.
Подробнее здесь: https://stackoverflow.com/questions/783 ... camsession