我正在编写一个 iPad 信息亭类型的应用程序,它允许访问者使用前置摄像头录制视频并查看相机胶卷中针对外部显示器的现有视频。我只是在学习 XCode,并在针对 iOS 5 的 Xcode 4.4.1 中工作。最近似乎发生了很多变化,这使得学习变得更加困难,所以我试图让事情尽可能简单,这就是我为什么使用 UIImagePicker。
一切都如我所愿,但有一个例外——我无法在外接显示器和 iPad 之间随意切换。当用户录制视频时,它在 iPad 上是全屏的。没关系,但是在他们停止录制后,视频会立即发送到外部显示器以供批准,并且 UIPopover 中会留下一个占位符图像。我宁愿看到/做的是在 iPad 上保持视频预览全屏,或者将视频定位到 UIPopover。
原因是从用户访问 iPad 的位置不容易看到外部显示器。因此,他们被要求批准(单击使用)他们无法真正看到的东西。把它放在iPad上会好得多。下面的代码是我用来记录的。
其他一切都很好,我希望用户从库中选择视频并显示在外接显示器上,因为这是默认行为,它可以正常工作。
到目前为止我能找到的最接近的答案是:UIImagePickerController in an existing UIPopoverController
有没有一种简单的方法可以禁用外部显示器或阻止发送视频预览?
- (IBAction)useCameraRoll:(id)sender
{
if([self.popoverController isPopoverVisible]) {
[self.popoverController dismissPopoverAnimated:YES];
} else {
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeSavedPhotosAlbum])
{
UIImagePickerController *imagePicker =
[[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
imagePicker.mediaTypes = [NSArray arrayWithObjects:(NSString *) kUTTypeMovie, nil];
imagePicker.allowsEditing = NO;
self.popoverController = [[UIPopoverController alloc] initWithContentViewController:imagePicker];
//self.popoverController = [[UIPopoverController alloc] setContentViewController:animated];
self.popoverController.delegate = self;
[self.popoverController
presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
newMedia = NO;
}
}
}