2013-09-26 6 views
3

Начну с того, что я новичок в объектно-ориентированных и iOS-программировании.Вид камеры как подвид в iOS

Что я хочу сделать, это отобразить камеру как часть вида, например прямоугольник в верхней части экрана, с чего начать?

(Что GUI-компонент для "обзора камеры"? AVCamCaptureManager или UIImagePickerController?)

+0

@ user1354603Вы должны создать оверлей камеры. –

+0

Я полностью не согласен со «слишком широким» рейтингом. Это * = ТОЧНО = * мой вопрос (что понятно любому программисту iOS, который его пробовал), и ответ идеально подходит ** в формате SO. (У меня теперь есть рабочий код. Я бы хотел добавить его в качестве ответа.) Пожалуйста, откройте его снова. – Olie

ответ

4

Вы можете использовать AVFoundation, чтобы сделать это. Хорошей отправной точкой является просмотр видео WWDC (с 2011 года), связанного с AVFoundation и Camera.

Apple example code for AVCam project - очень хорошая отправная точка.

Вот пример того, что вы можете сделать.

Прежде всего, необходимо создать экземпляр сеанса записи:

AVCaptureSession *session = [[AVCaptureSession alloc] init]; 
session.sessionPreset = AVCaptureSessionPreset1280x720; 

Затем вы должны создать вход и добавить его на сессии, чтобы получить изображения с камеры устройства:

AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 

    NSError *error = nil; 
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error]; 

    if (!input) { 
     NSLog(@"Couldn't create video capture device"); 
    } 
    [session addInput:input]; 

Тогда вы используете AVCaptureVideoPreviewLayer для представления на изображении изображений с камеры устройства:

AVCaptureVideoPreviewLayer *newCaptureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; 

Наконец, вам просто нужно установить фрейм (часть пользовательского интерфейса, который вам нужен) этого конкретного слоя, и добавить его в нужный вид и начать захват сеанса.

+0

Спасибо за ответ, я попробую это и вернусь с результатом. – user1354603

Смежные вопросы