我有一个允许用户激活相机的功能。现在我想让该用户选择他们选择的分辨率。问题是在我向他们提供解决方案之前,如何检查它是否可用。
UIImagePickerController *cameraUI = [[UIImagePickerController alloc] init];
cameraUI.sourceType = UIImagePickerControllerSourceTypeCamera;
cameraUI.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeMovie];
/// Different Options If Avalaible
cameraUI.videoQuality = UIImagePickerControllerQualityType640x480;
cameraUI.videoQuality = UIImagePickerControllerQualityTypeIFrame960x540;
cameraUI.videoQuality = UIImagePickerControllerQualityTypeIFrame1280x720;
答案 0 :(得分:1)
我不相信有一种已定义的方法来确定iOS SDK中的这种行为...
两种替代方法是使用现有密钥或使用检查当前设备的条件语句。
第一种选择:
使用现有的UIImagePickerControllerQualityTypeHigh, UIImagePickerControllerQualityTypeMedium and UIImagePickerControllerQualityTypeLow
,您可以指定质量而不确切知道它是什么。这允许用户始终拥有可用的最佳选项
第二种选择: 使用条件语句检查当前设备版本,并将其与具有相机分辨率的硬核设备列表进行比较
#include <sys/types.h>
#include <sys/sysctl.h>
- (NSString *) currentPlatform { // get current device
size_t size;
sysctlbyname("hw.machine", NULL, &size, NULL, 0);
char *machine = malloc(size);
sysctlbyname("hw.machine", machine, &size, NULL, 0);
NSString *platform = [NSString stringWithUTF8String:machine];
free(machine);
return platform;
}
// conditional statement
NSString *device = [self currentPlatform];
if (device isEqualToString@"iPhone6,2") { // iPhone 5s
// return quality...
// best bet is to look on Apple device spec and Wiki for deivce camera resolutions supported
}
有关设备的完整列表,请参阅此glist