在 iOS 10 中使用 UIImagePickerController 时,电影的隐私侵犯,但照片的隐私侵犯
Privacy violation for movies, but not for photos when using UIImagePickerController in iOS 10
我有一个可以使用UIImagePickerController
拍摄照片和电影的应用程序。
我在 Info.plist
中设置了 NSCameraUsageDescription
(实际上,本地化在 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
密钥。
我有一个可以使用UIImagePickerController
拍摄照片和电影的应用程序。
我在 Info.plist
中设置了 NSCameraUsageDescription
(实际上,本地化在 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
密钥。