我有一个功能,允许用户激活相机。现在我想给那个用户选择他们选择的分辨率的选项。问题是,在我向他们提供决议之前,如何检查是否可用。
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;发布于 2014-07-14 15:11:03
我认为在iOS SDK中还没有确定此行为的定义方法.
两个替代方法是使用现有键或使用检查当前设备的条件语句。
First alternative:使用现有的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
}有关设备的完整列表,请参见此地形图
https://stackoverflow.com/questions/24738641
复制相似问题