如何使用/为UIImagePickerController显示所有相机控件?

时间:2015-11-19 19:44:34

标签: ios objective-c uiimagepickercontroller

使用UIImagePickerController时,我无法显示相机控件。具体来说,我需要能够在慢动作,视频,照片,广场和全景之间进行选择。

我使用的代码的基本部分是:

UIImagePickerController *pc = [[UIImagePickerController alloc] init];
[pc setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
pc.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeImage, nil];

但是这显示了一个能够仅拍摄照片的拾取器控制器,即没有方形或全景模式。

将pc.mediaTypes设置为:

pc.mediaTypes = [[NSArray alloc] initWithObjects:(NSString *)kUTTypeImage, (NSString *)kUTTypeMovie, nil];

..显示带有视频和照片的选择器控制器。但是如何显示其他相机模式/类型呢?例如。什么是全景的UTType?

2 个答案:

答案 0 :(得分:4)

UIImagePickerController不会为您提供Apple的整个相机应用程序,以便在您自己的应用程序中使用。并非Camera应用程序的所有功能都可用。您可以通过调用 - [UIImagePicker availableMediaTypesForSourceType:]来打印可用的媒体类型,您将发现您获得了kUTTypeImage和kUTTypeMovie。

UIImagePickerController不提供Square,slo-mo,time-lapse和全景功能。

答案 1 :(得分:0)

UIImagePickerController在iOS 2.0中问世,可能当时很现代:

https://developer.apple.com/documentation/uikit/uiimagepickercontroller?language=objc

您看到的是“标准控件”。

即使在今天,现代文档也指向了旧版(Objective-C时代的文档)

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/CameraAndPhotoLib_TopicsForIOS/Art/UIImagePickerController.jpg

Chrome的样式已更改,但正如他们所说:“歌曲保持不变。”

有一些钩子可以隐藏标准控件,然后您可以添加自己的客户控件来以编程方式操作相机。我有一个宠物项目可以制作延时摄影等版本。

但是对于严肃的项目,苹果建议使用AV框架,尽管我还没有开始使用它们,但我当然同意。