如何显示所有相机控件 with/for UIImagePickerController?

How to show all camera controls with/for UIImagePickerController?

我在使用 UIImagePickerController 时无法显示相机控件。具体来说,我需要能够在慢动作、视频、照片、方形和全景之间 select。

我使用的代码的主要部分是:

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];

..显示带有视频和照片的选择器控制器。但是如何让另一个摄像头 modes/types 显示出来呢?例如。全景的 UTType 是什么?

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

UIImagePickerController 不提供方形、慢动作、延时和全景功能。

UIImagePickerController 出现在 iOS 2.0 中,在当时可能是现代的:

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

你看到的是"standard controls"。

即使在今天,现代文档也指向遗留问题(Objective-C 时代文档)

chrome 的样式已更改,但正如他们所说:"the song remains the same."

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

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