Изменение размера интерфейса захвата видео UIImagePickerController - PullRequest
3 голосов
/ 06 сентября 2011

Я использую splitviewcontroller для своего приложения ipad, в котором мне нужно захватывать видео в формате detailViewController с размерами 530 пикселей в ширину и 360 пикселей в высоту. Я пытался использовать UIImagePickerController для захвата видео, но я не могу изменить размер интерфейса захвата видео. Я не могу позволить себе захват полноэкранного видео в приложении. Есть ли способ изменить размер интерфейса захвата видео UIImagePickerController. Большое спасибо за ваши ответы. Извините, что не добавляете скриншот здесь. Мой счет репутации не позволяет этого.

Ответы [ 2 ]

2 голосов
/ 06 сентября 2011

Насколько я знаю, вы не сможете сделать это с помощью UIImagePickerController. Но вы можете сделать это легко, используя классы AVCamCaptureManager и AVCamRecorder. Apple имеет демонстрационную программу на своем сайте разработчиков здесь . Он называется AVCam. Проще говоря, когда вы нажимаете, чтобы открыть камеру, она вызывает классы и методы, которые отвечают за открытие камеры iPhone и запись видео или захват звука. Он вызывает те же классы, которые вызываются UIImagePickerController.

В этом демонстрационном коде вы найдете небольшой объект UIView, который отображает канал камеры. Вы можете изменить размер этого представления в соответствии с желаемым размером, и вход камеры будет отображаться в этой большой области. Это сработало для меня, когда я хотел изменить размер входного канала камеры и сделать снимок. Я надеюсь, что это работает и для вас.

0 голосов
/ 30 марта 2012

Я только что нашел возможный способ изменения размера интерфейса захвата видео UIImagPickerController на iPad. Основная идея заключается в том, чтобы использовать измерение UIPopoerController, чтобы изменить размер представления UIImagPickerController, а затем добавить его в свое пользовательское представление.

Подробный код и описание приведены ниже:

//In the following code, videoRecorder is an UIImagPickerController  

//1. Create a container view controller and load UIImagPickerController's view
UIViewController *containerController = [[UIViewController alloc] init];
containerController.contentSizeForViewInPopover = CGSizeMake(320, 240);
[containerController.view addSubview:videoRecorder.view];

//2. Add the container view controller in a UIPopoerController and present the popover outside the visible area on the screen (you can't see it but the popover was presented)
popoverView = [[UIPopoverController alloc] initWithContentViewController:containerController];                    
popoverView.passthroughViews = [NSArray arrayWithObjects:self.view, nil];
[popoverView setPopoverContentSize:CGSizeMake(320, 240)];
[popoverView presentPopoverFromRect:CGRectMake(0, -1024, 1, 1) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionLeft animated:YES];   

//3. Reset the frame of UIImagPickerController's view to meet the frame of its container - this is important to resize the UIImagPickerController's view and must do this step after the popover was presented.                                    
[videoRecorder.view setFrame:containerController.view.frame];

//4. Add the container view controller's view to your custom view - in this example, it is 'camView' with the size 320 x 240
[camView addSubview:containerController.view];   

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

[popoverView dismissPopoverAnimated:YES];
[[camView.subviews lastObject] removeFromSuperview];
...