我有一个应用程序可以使用UIImagePickerController
拍摄照片和电影。
我在NSCameraUsageDescription
设置了Info.plist
(实际上,本地化在InfoPlist.strings
)。
当应用程序启动并且我试图拍照时,我被要求获得许可,我已经批准了。现在,我可以毫无问题地拍照。
但是,当我尝试拍电影时,应用程序崩溃总是由于隐私侵犯(请参阅下面的堆栈跟踪)。这种崩溃有时会在相机界面出现之前发生,有时会发生(请参见下面的屏幕截图)。
我不认为它与我提供相机界面的方式有任何关系,但无论如何这里是代码:
+ (void)takePhotoOrMovie:(CFStringRef)mediaType inViewController:(UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate> *)viewController
{
UIImagePickerController *takePhotoOrMovieController = [[UIImagePickerController alloc] init];
takePhotoOrMovieController.sourceType = UIImagePickerControllerSourceTypeCamera;
NSString *mediaTypePhotoOrMovie = (__bridge NSString *)mediaType;
takePhotoOrMovieController.mediaTypes = @[mediaTypePhotoOrMovie];
takePhotoOrMovieController.allowsEditing = YES; // Enables the controls for editing
takePhotoOrMovieController.delegate = viewController;
[viewController presentViewController:takePhotoOrMovieController animated:YES completion:nil];
}
参数mediaType
是照片的kUTTypeImage
和电影的kUTTypeMovie
。
知道什么是错的以及如何纠正它?
您还需要提供NSMicrophoneUsageDescription
密钥。